gpt4 book ai didi

c# - 为什么 StringBuilder.Equals 在这种情况下返回 "true"?

转载 作者:行者123 更新时间:2023-11-30 13:37:10 24 4
gpt4 key购买 nike

我在比较 C# (XNA) 中的两个 StringBuilder 时遇到一个小问题。

StringBuilder sb1;
StringBuilder sb2;

两者都在我的代码的不同部分进行了初始化。一个简单的 Console.WriteLine 显示它们包含相同的文本。但是,以下是错误的:

sb1.Equals(sb2); // This is false

但以下是正确的

sb1.ToString().Equals(sb2.ToString); // This is true

这怎么会发生?

最佳答案

因为 string 类覆盖了 Equals 方法,因此 strings 通过值而不是引用进行比较。

参见 documentation :

Although string is a reference type, the equality operators (== and !=) are defined to compare the values of string objects, not references.

它谈论的是 ==!= 运算符,但它们实际上是在调用 string.Equals 并按值比较字符串。

关于c# - 为什么 StringBuilder.Equals 在这种情况下返回 "true"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24877235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com