Почему в данном конкретном случае точка останова в статическом конструкторе не срабатывает, даже если код выполняется? ⇐ C#
Почему в данном конкретном случае точка останова в статическом конструкторе не срабатывает, даже если код выполняется?
Это простое воспроизводимое решение в Visual Studio. Проект библиотеки классов имеет один класс Customer, как показано ниже. Тестовый проект имеет один тестовый класс и метод, как показано ниже. Статический конструктор Customer имеет точку останова. Первый оператор в TestMethod1 имеет еще одну точку останова.
Когда я запускаю TestMethod1 в режиме отладки, его точка останова срабатывает, как и ожидалось. Однако когда я много раз нажимаю F11 или продолжаю работу, точка останова в конструкторе не срабатывает, и отладчик не переходит в конструктор. Код конструктора выполняется, поскольку переменная имени в TestMethod1 имеет значение «Джон».
Если я удалю точку останова в TestMethod1, точка останова в конструкторе сработает.
Я не понимаю такого поведения. Я что-то упустил или это ошибка в отладчике? с использованием VS 2022 Pro 17.7.4.
пространство имен SomeLibrary { Клиент общественного класса { общедоступный статический клиент SomeCustomer только для чтения; общедоступное статическое имя строки; частный клиент() { } статический Клиент() { SomeCustomer = новый клиент(); имя = «Джон»; } публичная статическая пустота SomeMethod() { } } } с использованием SomeLibrary; пространство имен TestProject1 { [ТестКласс] публичный класс UnitTest1 { [Метод испытания] публичный недействительный TestMethod1() { Клиент.НекоторыйКлиент.ToString(); Клиент.НекоторыйМетод(); имя строки = Customer.name; } } }
Это простое воспроизводимое решение в Visual Studio. Проект библиотеки классов имеет один класс Customer, как показано ниже. Тестовый проект имеет один тестовый класс и метод, как показано ниже. Статический конструктор Customer имеет точку останова. Первый оператор в TestMethod1 имеет еще одну точку останова.
Когда я запускаю TestMethod1 в режиме отладки, его точка останова срабатывает, как и ожидалось. Однако когда я много раз нажимаю F11 или продолжаю работу, точка останова в конструкторе не срабатывает, и отладчик не переходит в конструктор. Код конструктора выполняется, поскольку переменная имени в TestMethod1 имеет значение «Джон».
Если я удалю точку останова в TestMethod1, точка останова в конструкторе сработает.
Я не понимаю такого поведения. Я что-то упустил или это ошибка в отладчике? с использованием VS 2022 Pro 17.7.4.
пространство имен SomeLibrary { Клиент общественного класса { общедоступный статический клиент SomeCustomer только для чтения; общедоступное статическое имя строки; частный клиент() { } статический Клиент() { SomeCustomer = новый клиент(); имя = «Джон»; } публичная статическая пустота SomeMethod() { } } } с использованием SomeLibrary; пространство имен TestProject1 { [ТестКласс] публичный класс UnitTest1 { [Метод испытания] публичный недействительный TestMethod1() { Клиент.НекоторыйКлиент.ToString(); Клиент.НекоторыйМетод(); имя строки = Customer.name; } } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Непроверенная точка останова и точка останова не работают (laravel, xdebug, vscode)
Anonymous » » в форуме Php - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Непроверенная точка останова и точка останова не работают (Laravel, Xdebug, VSCode)
Anonymous » » в форуме Php - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-