编译器错误 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()
{
}
}