您的位置:首页 > 编程语言 > C#

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;==比较的是对象的引用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: