首页 > 其他 > 详细

“==”和equal的比较

时间:2018-11-26 13:19:50      阅读:196      评论:0      收藏:0      [点我收藏+]
技术分享图片
 1 class People
 2     {
 3         public string A { get; set; }
 4         public string B { get; set; }
 5         public string C { get; set; }
 6 
 7        
 8         public override bool Equals(object obj)
 9         {
10 
11             if (obj == null)
12                 return false;
13             if (ReferenceEquals(obj, this))
14                 return true;
15             People p = obj as People;
16             if (p == null)
17                 return false;
18             if (p.A.Equals(this.A) && p.B.Equals(this.B) && p.C.Equals(this.C))
19                 return true;
20             return false;
21         }
22         /// <summary>
23         /// 忽略空格和null,进行比较。
24         /// </summary>
25         /// <param name="str1"></param>
26         /// <param name="str2"></param>
27         /// <returns></returns>
28         private bool CompareTwo(string str1, string str2)
29         {
30             if (string.IsNullOrEmpty(str1))
31                 str1 = "";
32             if (string.IsNullOrEmpty(str2))
33                 str2 = "";
34             return str1.Trim().Equals(str2.Trim());
35 
36         }
37 
38 
39     }
View Code

 

判断类的两个实例的值是否相等,需要重写Equal方法。

在值类型中:

“==”和equal相同,只比较“值的内容”是否相等。

在引用类型中:

“==”:比较的是类的引用地址。此处string比较特殊,比较的是值,因为C#内部重写了该方法,用的是equal。

“equal”:始终比较的是“值的内容

 

“==”和equal的比较

原文:https://www.cnblogs.com/wwz-wwz/p/10019548.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!