情況一
string s = "Test";
string t = string.Copy(s);
Console.WriteLine(s == t);
Console.WriteLine((object)s == (object)t);
輸出為true false
情況二
string s = "Test";
string t = s;
Console.WriteLine(s == t);
Console.WriteLine((object)s == (object)t);
輸出為true true
情況三
string s = "Test";
string t = string.Copy(s);
Console.WriteLine(s.Equals(t)); //true
Console.WriteLine((object)s.Equals((object)t));//true
情況四
string s = "Test";
string t = s;
Console.WriteLine(s.Equals(t)); //true
Console.WriteLine((object)s.Equals((object)t));//true
結論:
String.Equals();方法(是String類從它的超類Object中繼承的)被用來檢測兩個對象是否相等,即兩個對象的內容是否相等。
==用於比較引用和比較基本數據類型時具有不同的功能:
比較基本數據類型,如果兩個值相同,則結果為true
而在比較引用時,如果引用指向內存中的同一對象(即內存地址是一樣的),結果為true。