【发布时间】:2013-04-29 06:42:34
【问题描述】:
我对@987654321@ 和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) 那么为什么它会给出两个不同的结果呢?
【问题讨论】:
-
你应该想出一个更好的问题标题。电流没有任何意义。请不要在标题中重复标签。
-
@ReferenceEquals:你是比较四种比较方法。我修改了你的标题以更好地反映你的问题。
-
为什么要检查 2 个字符串生成器的相等性?这就像检查流或文本编写器是否相等。
标签: c# object stringbuilder equals-operator referenceequals