ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

C#面:利用 operator 声明且仅声明了 == ,有什么错误吗?

2026/9/21 0:19:44 拓冰建站 浏览量
C#面:利用 operator 声明且仅声明了 == ,有什么错误吗?

仅声明 == 是错误的,还要声明 != 。

如果要重载一个运算符,就必须同时重载一组相关的运算符。因为运算符之间存在一些预定义的关系,需要同时进行重载以保持一致性。

public class MyClass
{public int Value { get; set; }public static bool operator == (MyClass obj1, MyClass obj2){if (ReferenceEquals(obj1, obj2))return true;if (obj1 is null || obj2 is null)return false;return obj1.Value == obj2.Value;}public static bool operator !=(MyClass obj1, MyClass obj2){return !(obj1 == obj2);}
}

 在上面的示例中,重载了和运算符来比较两个对象的值是否相等。在重载运算符时直接使用了运算符的逻辑来实现。