【发布时间】:2014-12-10 19:21:54
【问题描述】:
在检查String == 运算符时,我注意到它调用String.Equals(string a, string b),这意味着它只是一个传递。
检查String.Equals(string a, string b) 方法,我发现它使用== 运算符进行相等性检查。在执行"x" == "x" 或"x" == "y" 之类的操作时,这实际上是如何工作的并且不会导致StackOverflowException?
更新:我让 JetBrains 知道,他们将其作为 dotPeek 的重中之重。 https://youtrack.jetbrains.com/issue/DOTP-6789
我还在 ILSpy 的 GitHub 存储库上添加了一个问题。
【问题讨论】:
-
免费的 .NET Reflector (v6) 在 C# 中显示“错误”(即它只显示
a == b),但在 VB.NET 中正确:a Is b。