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);
    }
}

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

相关推荐
zhougl99612 分钟前
Java 枚举类(enum)详解
java·开发语言·python
yong999014 分钟前
基于势能原理的圆柱齿轮啮合刚度计算MATLAB程序实现
开发语言·matlab
lsx20240625 分钟前
R 数组:深入探索与高效使用
开发语言
星火开发设计25 分钟前
格式化输入输出:控制输出精度与对齐方式
开发语言·c++·学习·算法·函数·知识
1104.北光c°40 分钟前
【黑马点评项目笔记 | 登录篇】Redis实现共享Session登录
java·开发语言·数据库·redis·笔记·spring·java-ee
zmzb01031 小时前
C++课后习题训练记录Day91
开发语言·c++
我要打打代码1 小时前
关于C#线程 任务
开发语言·数据库·c#
小猪咪piggy1 小时前
【Python】(2) 执行顺序控制语句
开发语言·python
Σdoughty1 小时前
python第三次作业
开发语言·前端·python
是萧萧吖1 小时前
每日一练——有效的括号
java·开发语言·javascript