Erreur du compilateur CS0172
Impossible de déterminer le type d’expression conditionnelle, car 'type1' et 'type2' sont convertis implicitement l’un en l’autre
Dans une instruction conditionnelle, vous devez pouvoir convertir implicitement les types de chaque côté du jeton :
. De plus, il ne peut pas y avoir de conversions implicites mutuelles, une seule conversion suffit.
L’exemple suivant génère l’avertissement 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;
}
}
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :