C#等于操作符注意事项
2014-11-12 12:25
274 查看
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; } }
相关文章推荐
- C# ==和 != 操作符重载注意事项
- C#中接口多重继承的注意事项
- C#使用CDO发送邮件 注意事项!!!
- C# 中的 @ 符号的使用及注意事项
- 用GDAL 1.4 For C#来写ShapeFile注意事项
- C#编码应注意的事项
- C#语言中变量的使用和注意事项
- C#导出Excel的函数及注意事项
- c#事务的使用、示例及注意事项
- C#中接口多重继承的注意事项
- c# const 与 static readonly 在switch中的注意事项
- vc++.net 移植到 C#中的几点注意事项
- [转]C#编码应注意的事项清单
- (To Me Just)c#中的WebBrowser类的使用注意事项!
- c#连接sql代码及注意事项
- C#中接口多重继承的注意事项
- C# 里所有的注意事项
- [转]C#编码应注意的事项清单
- C# 中的 @ 符号的使用及注意事项
- C#编码应注意的事项清单