之間的差異我有一個關於Object.Equals
和Equals(object)
的問題。我的樣本代碼如下:C#運營商==,StringBuilder.Equals,Object.Equals和Object.ReferenceEquals
class Program
{
static void Main(string[] args)
{
var sb1 = new StringBuilder("Food");
var sb2 = new StringBuilder("Food");
Console.WriteLine(sb1 == sb2);
Console.WriteLine(sb1.Equals(sb2));
Console.WriteLine(Object.Equals(sb1, sb2));
Console.WriteLine(Object.ReferenceEquals(sb1, sb2));
Console.ReadLine();
}
}
輸出是:
False
True
False
False
但就我而言Object.Equals(sb1, sb2)
內部調用sb1.Equals(sb2)
爲何還給出了兩個不同的結果?
你應該想出一個更好的問題標題。目前沒有任何意義。請不要在標題中重複標籤。 – 2013-05-05 09:20:49
@ReferenceEquals:你比較了四種比較方法。我修改了你的標題以更好地反映你的問題。 – 2013-05-05 09:36:42
你爲什麼要檢查2個stringbuilders上的等號?這就像檢查一個流或者textwriter的平等。 – leppie 2013-05-05 09:57:32