编译器错误 CS0035
更新:2007 年 11 月
错误消息
运算符“operator”对于“type”类型的操作数具有二义性
编译器有多个可用的转换,但在应用运算符之前不知道选择哪个转换。有关更多信息,请参见Templated User Defined Conversions和转换运算符(C# 编程指南)。
下面的示例生成 CS0035:
// CS0035.cs
class MyClass
{
private int i;
public MyClass(int i)
{
this.i = i;
}
public static implicit operator double(MyClass x)
{
return (double) x.i;
}
public static implicit operator decimal(MyClass x)
{
return (decimal) x.i;
}
}
class MyClass2
{
static void Main()
{
MyClass x = new MyClass(7);
object o = - x; // CS0035
// try a cast:
// object o = - (double)x;
}
}