使用英语阅读

通过


编译器错误 CS0216

运算符“operator”要求也要定义匹配的运算符“missing_operator”

用户定义的 == 运算符需要用户定义的 != 运算符,反之亦然。
这同样适用于用户定义的 true 运算符和用户定义的 false 运算符。

下面的示例生成 CS0216:

C#
// CS0216.cs  
class MyClass  
{  
   public static bool operator == (MyClass MyIntLeft, MyClass MyIntRight)   // CS0216  
   {  
      return MyIntLeft == MyIntRight;  
   }  
  
   // to resolve, uncomment the following operator definition  
   /*  
   public static bool operator != (MyClass MyIntLeft, MyClass MyIntRight)  
   {  
      return MyIntLeft != MyIntRight;  
   }  
   */  
  
   public override bool Equals (object obj)  
   {  
      return base.Equals (obj);  
   }  
  
   public override int GetHashCode()  
   {  
      return base.GetHashCode();  
   }  
  
   public static void Main()  
   {  
   }  
}