更新:2007 年 11 月
错误消息
无法确定条件表达式的类型,因为“type1”和“type2”可相互隐式转换在条件语句中,: 运算符两边的类型必须可以相互转换。而且,不能有相互转换例程;只需一个转换。有关更多信息,请参见
下面的示例生成 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; } } |