Остановить Visual Studio 2019 от постоянной оценки ToString () - PullRequest
0 голосов
/ 16 апреля 2019

Воспроизвести мою проблему:

  1. Вставьте следующий код в новое консольное приложение C # .NET Framework в Visual Studio 2019.
  2. Поместить точку останова на линию _Bar = null
  3. Начать отладку
  4. В точке останова наведите курсор на _Bar, чтобы увидеть его значение
  5. Перешагните
  6. Перешагните
  7. Исключение выдается

Похоже, что Visual Studio постоянно оценивает метод ToString(), в результате чего _Bar всегда имеет значение FooBar, несмотря на то, что оно установлено на null. Есть ли способ остановить это? Проблема заключается в том, что не воспроизводится в Visual Studio 2013. Я использую Visual Studio Community 2019 версии 16.0.1.

    using System;

    namespace FooBar {
        class Program {
            static void Main(string[] args) {
                new Foo();
            }

            class Foo {
                string _Bar;
                public string Bar {
                    get {
                        if (_Bar == null) {
                            _Bar = "FooBar";
                        }
                        return _Bar;
                    }
                    set {
                        _Bar = value;
                    }
                }

                public Foo() {
                    _Bar = null;
                    if (_Bar != null) {
                        throw new Exception("_Bar is not null.");
                    }
                }

                public override string ToString() {
                    return Bar;
                }
            }
        }
    }

1 Ответ

0 голосов
/ 16 апреля 2019

Решение проблемы состоит в том, чтобы отключить оценку свойств в общих параметрах отладки

enter image description here

Редактировать: еще одно решение проблемы, если вы неокно наблюдения со свойством.

...