Оглядаючи String ==оператора, я помітив, що він дзвонить String.Equals(string a, string b), це означає, що це просто прохід.
Досліджуючи String.Equals(string a, string b)метод, я бачу, що він перевіряє рівність за допомогою ==оператора. Як це насправді працює і не викликає, StackOverflowExceptionколи роблять щось на кшталт "x" == "x"або "x" == "y"?
Оновлення : Я повідомив JetBrains про це, і вони зробили це критичним пріоритетом для dotPeek. https://youtrack.jetbrains.com/issue/DOTP-6789
Я також додав випуск щодо репортажу GitHub ILSpy.

a == b), але правильний у VB.NET :a Is b.