Erro do Compilador CS0172
O tipo de expressão condicional não pode ser determinado porque "type1" e "type2" 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 seguinte exemplo gera o erro CS0172:
C#
// 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;
}
}
Colaborar conosco no GitHub
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: