我有一个关于 Object.Equals
和 Equals(object)
的问题。以下是我的示例代码:
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)
,那么为什么会得到两个不同的结果呢?