yasker的技术blog

内敛,以致外现

没事不要重载引用类的相等操作符……
刚刚重载顺手了,把自己定义的一个类的==重载了。结果比较惨,后知后觉发现一个绕不过去的地方:
如果用Equals调用重载的==,那么如果表达式是 obj == null,那么,挂了……
如果==调用Equals,更不用说,要是类型不对,都难判断的……况且,null也没有GetType()一说……

最后查到到msdn上这样说

Implementing the Equality Operator (==) on Reference Types

Most languages do provide a default implementation of the equality operator (==) for reference types. Therefore, you should use care when implementing == on reference types. Most reference types, even those that implement the Equals method, should not override ==.

所以,算是个教训,没事不要重载 类 的==操作符……
阅读更多
个人分类: .net
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

没事不要重载引用类的相等操作符……

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭