我不明白,为什么会出现以下equals
结果true
。这个例子来自msdn:
Dim sb1 As New StringBuilder("abc")
Dim sb2 As New StringBuilder("abc", 16)
Console.WriteLine()
Console.WriteLine("a1) sb1.Length = {0}, sb1.Capacity = {1}", sb1.Length, sb1.Capacity)
Console.WriteLine("a2) sb2.Length = {0}, sb2.Capacity = {1}", sb2.Length, sb2.Capacity)
Console.WriteLine("a3) sb1.ToString() = ""{0}"", sb2.ToString() = ""{1}""", _
sb1.ToString(), sb2.ToString())
Console.WriteLine("a4) sb1 equals sb2: {0}", sb1.Equals(sb2))
当我检查 msdn 页面时,equals
我发现:
引用相等意味着被比较的对象变量引用同一个对象。
所以例如
Dim sb1 as New StringBuilder("abc")
Dim sb2 as Stringbuilder = sb1
sb1.equals(sb2)
在这个例子中,我会理解结果true
,但在第一个例子中,我有两个不同的对象和两个不同的引用。
谁能向我解释为什么第一个示例中的结果是true
?