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

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

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

cs 复制代码
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);
    }
}

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

相关推荐
科芯创展7 分钟前
XZ4058B/C,20V,外置MOS,8.4V/8.7V开关充电芯片 宽范围电源电压:8.9V~20V-(电池充电电压:8.4V/8.7V)
c语言·开发语言
AI玫瑰助手14 分钟前
Python流程控制:break与continue语句的区别与应用
开发语言·python·信息可视化
largecode1 小时前
如何让电话显示店名?来电显示店铺名称,提升有效接通率
java·开发语言·spring·百度·学习方法·业界资讯·twitter
xuhaoyu_cpp_java1 小时前
SpringMVC学习(五)
java·开发语言·经验分享·笔记·学习·spring
Aurorar0rua1 小时前
CS50 x 2024 Notes C -11
c语言·开发语言·学习方法
Dlrb12111 小时前
C语言-指针
c语言·开发语言
zhangzhi19798155921 小时前
Agent Skills
开发语言·python
故事和你912 小时前
洛谷-【图论2-1】树4
开发语言·数据结构·c++·算法·动态规划·图论
故事和你912 小时前
洛谷-【图论2-1】树1
开发语言·数据结构·c++·算法·深度优先·动态规划·图论