Erro do compilador CS0172
O tipo de expressão condicional não pode ser determinado porque 'tipo1' e 'tipo2' se convertem implicitamente um no outro
Em uma instrução condicional, você deve ser capaz de converter implicitamente os tipos em ambos os :
lados do token. Além disso, não pode haver conversões implícitas mútuas; você só precisa de uma conversão.
O exemplo a seguir gera CS0172:
// CS0172.cs
public class Square
{
public class Circle
{
public static implicit operator Circle(Square aa)
{
return null;
}
public static implicit operator Square(Circle aa)
// using explicit resolves this error
// public static explicit operator Square(Circle aa)
{
return null;
}
}
public static void Main()
{
Circle aa = new Circle();
Square ii = new Square();
object o = (1 == 1) ? aa : ii; // CS0172
// the following cast would resolve this error
// (1 == 1) ? aa : (Circle)ii;
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: