更新:2007 年 11 月
错误消息
无法确定条件表达式的类型,因为“class1”和“class2”之间没有隐式转换当希望不同类的对象在同一代码中使用时,类之间的转换非常有用。然而,在一起工作的两个类不能有相互转换和多余转换。
若要解决 CS0173,请确认 class1 与 class2 之间有且仅有一个隐式转换,不论向哪个方向进行转换或在哪个类中进行转换都是如此。有关更多信息,请参见
示例
下面的示例生成 CS0173:
复制代码 | |
---|---|
// CS0173.cs public class C {} public class A {} public class MyClass { public static void F(bool b) { A a = new A(); C c = new C(); object o = b ? a : c; // CS0173 } public static void Main() { F(true); } } |
下面的代码在 Microsoft Visual Studio 2008 中而不是在 Visual Studio 2005 中生成 CS0173。
复制代码 | |
---|---|
//cs0173_2.cs class M { static int Main () { int X = 1; object o = (X == 0) ? null : null; //CS0173 return -1; } } |