1. 程式人生 > >“==”和equal的比較

“==”和equal的比較

mar one returns param cee str ram color isnull

技術分享圖片
 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的比較