編譯器錯誤 CS0216
運算子 'operator' 的配對運算子 'missing_operator' 也需要定義
使用者定義的 == 運算子需要使用者定義的 != 運算子,反之亦然。
這也適用於使用者定義的 true 運算子和使用者定義的 false 運算子。
下列範例會產生 CS0216:
// 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()
{
}
}