CS0172 de erro do compilador
Mensagem de erro
Tipo de expressão condicional não pode ser determinado porque 'tipo' e 'type2' se convertem implicitamente um no outro
Em uma demonstrativo condicional, você deve ser capaz de converter os tipos em ambos os lados do : operador. Além disso, não pode haver conversão mútua rotinas; você só precisa de uma conversão.Para obter mais informações, consulte Operadores de conversão (Guia de programação C#).
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;
}
}