Осматривая 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
Я также добавил проблему с репозиторием ILSpy на GitHub.

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