c#中==和equals的比较
2016-01-02 12:10
253 查看
var vClass1 = new { Name = "abc", Age = 20 }; var vClass2 = new { Name = "abc", Age = 20 }; var vClass3 = new { Name = "abd", Age = 21 }; Console.WriteLine(vClass1.Equals(vClass2)); //true Console.WriteLine(vClass1.Equals(vClass3)); //false Console.WriteLine(vClass1 == vClass2); //false Console.WriteLine(vClass1 == vClass3); //false
总结:对于字符串来说,两个比较的都是对象的值,并且是等效的;对于非字符串的其他引用类型(非匿名类型)两个比较的都是对象的引用,并且是等效的;对于匿名类型,Equal()方法比较的是类型的状态,如果两个类型的属性和值都相同,就返回true;==比较的是对象的引用。
相关文章推荐
- c#设置不显示右上角的最小化最大化关闭按钮
- C#中的继承
- C#编写Windows应用程序的一般过程
- C# 程序只能执行一次
- C# 使用WinRar命令压缩和解压缩
- c#保留小数点后位数的方法
- 好玩的C#
- C# 字段、属性、成员变量
- c#实现文件上传 下载 从URL上下载
- Bind和Eval的区别
- 译文:C#中的弱事件(Weak Events in C#)
- c#socket异步编程和断线重连
- C#中异步及winform中界面假死
- C# 实现多线程的同步方法详解
- 【设计模式】单一职责原则
- 【设计模式】策略模式
- 实例详解C#正则表达式
- C#Hello World
- 【设计模式】简单工厂模式
- 使用C#开发Windows服务程序