Błąd kompilatora CS0172
Nie można określić typu wyrażenia warunkowego, ponieważ wyrażenie "type1" i "type2" niejawnie konwertuje się na siebie
W instrukcji warunkowej musisz mieć możliwość niejawnego konwertowania typów po obu stronach tokenu :
. Ponadto nie może istnieć wzajemne konwersje niejawne; potrzebna jest tylko jedna konwersja.
Poniższy przykład generuje 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;
}
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: