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 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
顽疲10 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog10 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友
曹牧10 小时前
C#:输入的字符串格式不正确
c#
程序喵大人12 小时前
【C++入门】编译链接模型 - 07 链接器怎样把符号对上号
开发语言·c++·编译器·编译链接·链接器
微三云 - 廖会灵 (私域系统开发)12 小时前
供应链系统实战:多渠道订单聚合与分布式库存一致性方案总结
开发语言·分布式·php
学逆向的12 小时前
C 数据溢出与精度丢失
c语言·开发语言·网络安全
霸道流氓气质13 小时前
AgentFlow 入门与实战:Task-Based 并发、EWMA 动态调度与四道门禁的 Java 生产级编排
java·开发语言
释厄62313 小时前
错误无误公理——错误正确本同源都迭代定律——逆转有价值
android·开发语言·kotlin
2601_9628857214 小时前
如何用 Python计算 CR能量指标(中间意愿指标)?
开发语言·python