次の方法で共有


コンパイラ エラー CS0173

更新 : 2007 年 11 月

エラー メッセージ

'型 1' と '型 2' の間に暗黙的な変換がないため、条件式の型がわかりません。

クラスの異なるオブジェクトを 1 つのコードで使用する場合は、クラス間での変換が便利です。ただし、同時に使用する 2 つのクラスで相互変換と冗長変換を行うことはできません。

CS0173 エラーを解決するには、変換の方向や変換が含まれるクラスにかかわらず、class1 と class2 の間の暗黙の変換が 1 つだけになるようにします。詳細については、「暗黙的な数値変換の一覧表 (C# リファレンス)」および「変換演算子 (C# プログラミング ガイド)」を参照してください。

使用例

次の例では 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 では CS0173 を生成しますが、Visual Studio 2005 では生成しません。

//cs0173_2.cs
class M
{

static int Main ()
{
              int X = 1;
        object o = (X == 0) ? null : null; //CS0173
        return -1;
}
}