次の方法で共有


コンパイラ エラー CS0035

更新 : 2007 年 11 月

エラー メッセージ

演算子 'operator' は型 'type' のオペランドに対してあいまいです。

使用できる変換が複数あり、コンパイラは演算子を適用する前に変換を選択できません。詳細については、「Templated User Defined Conversions」および「変換演算子 (C# プログラミング ガイド)」を参照してください。

次の例では CS0035 エラーが生成されます。

// CS0035.cs
class MyClass
{
   private int i;

   public MyClass(int i)
   {
      this.i = i;
   }

   public static implicit operator double(MyClass x)
   {
      return (double) x.i;
   }

   public static implicit operator decimal(MyClass x)
   {
      return (decimal) x.i;
   }
}

class MyClass2
{
   static void Main()
   {
      MyClass x = new MyClass(7);
      object o = - x;   // CS0035
      // try a cast:
      // object o = - (double)x;
   }
}