C#重载操作符==和!=时注意问题

嘎子 C# 2016-03-12 912 次浏览 没有评论

1、大家一定要明确一点就是如果两个类在没有重载==和!=时用这两个运算符进行比较,那么只有引用相同的地方的时候才返回true,否则(不管里面的内容是否相等)返回false。object.Equals可以将类进行简单的装箱和拆箱操作再进行比较。

所以。。。如果大家要对用自己写的类用==和!=时一定要进行重载。

2、重载时最常犯的一个错误是:

上面一段代码在==和重载中调用了==操作,所以就会无限的嵌套,直到崩溃。

正确的代码应该为:

 

object.Equals会自动进行装箱和拆箱操作,所以此操作可以得到正确的结果。

原创文章,文章首发于:Riley Ge (@rileyge) — Steemit

原创文章,转载请注明: 转载自TsonTec:测量解决方案提供者

本文链接地址: C#重载操作符==和!=时注意问题

相关主题

  • 返回null还是抛出Exception2016-03-22 返回null还是抛出Exception (2)
    我自己在写代码的时候也经常会写return null,但仔细想想这真的好吗? public User GetUser(string […]
  • Kotlin中如何实现类似Java或C#中的静态方法2017-05-28 Kotlin中如何实现类似Java或C#中的静态方法 (0)
    大家可以在网络上搜到不少这样的文章,官方推荐是包级函数,也有人说用伴生对象(companion […]
  • 用.NET执行AutoCAD自带命令2016-02-20 用.NET执行AutoCAD自带命令 (2)
    看到网上很多文章说什么以前用其他语言时执行AutoCAD中自带的命令非常方便,而.Net使用时非常不方便。这样说也不算错,因为在AutoCAD […]
  • C#中的具名参数、可选参数及注意问题2016-03-21 C#中的具名参数、可选参数及注意问题 (0)
    具名参数 和 可选参数 是 C# framework 4.0 出来的新特性。 一. 常规方法定义及调用 public void […]
  • 用C#删除程序占用文件2016-01-29 用C#删除程序占用文件 (4)
    在写卸载程序时经常会遇到要删除文件自身的问题,此时文件被占用,使用常规方法并不容易删除。 删除文件方法如下: 文件 […]
  • 让自己的类拥有显式和隐式类型转换功能2016-03-04 让自己的类拥有显式和隐式类型转换功能 (0)
    如果用别人写的类和自己写的类进行混合编程的话有时隐式转换会非常有用,例如我遇到一个问题,之前自己写了一个矩阵计算的类用的是double类型的值,但是后来 […]

说点什么

您将是第一位评论人!

提醒
avatar
wpDiscuz
回顶部