CS0035 de erro do compilador
Mensagem de erro
Operador 'operador' é ambíguo em um operando do tipo 'tipo'
O compilador tem mais de uma conversão disponível e não sabe que podem ser escolhidas antes de aplicar o operador.Para obter mais informações, consulte USER templated Defined Conversions e Operadores de conversão (Guia de programação C#).
O exemplo a seguir gera 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;
}
}