C#重载操作符==和!=时注意问题
来源:互联网 发布:手机上清除数据 编辑:程序博客网 时间:2024/06/08 10:11
public class MyClass{public int ID; /*public static bool operator ==(MyClass c1, MyClass c2) { //下面这段代码中的“==”调用会进入递归,直至崩溃 if (c1 == null || c2 == null) { return c1 == c2; } return c1.ID == c2.ID; } public static bool operator !=(MyClass c1, MyClass c2) { //下面这段代码中的“==”调用会进入递归,直至崩溃 if (c1 == null || c2 == null) { return c1 != c2; } return c1.ID != c2.ID; }*/ //正确的方法 public static bool operator ==(MyClass c1, MyClass c2) { //将c1对象转为object再进行判断 //这里的object.Equals(c1, null)也可以写成 //c1 as object == null if (object.Equals(c1, null) || object.Equals(c2, null)) { return object.Equals(c1, c2); } return c1.ID == c2.ID; } public static bool operator !=(MyClass c1, MyClass c2) { if (object.Equals(c1, null) || object.Equals(c2, null)) { return !object.Equals(c1, c2); } return c1.ID != c2.ID; }}
参考:http://www.cnblogs.com/cruisoring/archive/2009/11/04/1595958.html
- C#重载操作符==和!=时注意问题
- C#重载操作符==和!=时注意问题
- 运算符重载 = 的注意
- 重载=操作符解决浅拷贝问题
- C#操作符重载
- C#操作符重载
- C# 操作符重载
- C#操作符重载
- C#操作符重载
- C#操作符重载
- C#操作符重载
- C# 重载操作符
- C#操作符重载
- C++-重载操作符<< >> = + - * /
- C++ 重载=操作符
- 单链表中重载操作符“=”
- C++练习遇到问题,要注意赋值操作符“=”和比较操作符“==”的区别。
- 模板类中操作符重载问题("<<"和">>"重载)
- passwd Authentication token manipulation error
- magento开发数据库eav模型实例
- 自动刷新页面的实现方法总结:
- C# 给图片添加水印
- 数据库超时空闲失效-dbcp连接池参数优化
- C#重载操作符==和!=时注意问题
- [算法] 6 种排序的重写,很熟练!
- php日期赋值
- 黑马程序员—高新技术1
- 转载_debian linux 中如何查看软件包是否已经安装和如何安装、卸载软件
- fread
- ubuntu下搜索find搜索字符串命令
- 多层J2EE系统的架构与模式设计
- norflash启动和nandflash启动