Налагодження автоматичних властивостей


126

Чи є спосіб встановити точку розриву на setter / getter в автоматично реалізованій власності?

int Counter { get; set; }

Окрім того, щоб змінити його на стандартне властивість (я роблю це таким чином, але для цього я повинен змінити і перекомпілювати весь проект)


2
З якою IDE ви працюєте? Візуальна студія? (Я пропоную вам додати відповідне тег до свого запитання, оскільки це насправді більше стосується конкретного IDE, ніж самої мови C #.)
stakx - більше не вносить внесок

5
@stakx у світі .NET у нас за замовчуванням IDE :)
Stilgar

1
@Stilgar, я знаю про це, я сам використовую VS. Але "за замовчуванням" не означає, що він єдиний, а також, що всі його використовують. Оскільки це питання про IDE, тому важливо знати, яку саме IDE ми шукаємо тут. Звідси мій попередній коментар.
stakx - більше не вносяться

4
@stakx добре, коли немає жодної згадки про IDE для запитання, пов'язаного з .NET, передбачається, що це VS. Більше того, я здебільшого жартував :)
Stilgar

Відповіді:


220

Використання Visual Studio 2008, 2010, 2012, 2013:

  1. Перейдіть у вікно точки розриву
  2. Нове -> Перерва у функції ...
  3. Для getвведіть:ClassName.get_Counter()

    Для setвведіть:ClassName.set_Counter(int)

Ви отримаєте "Немає джерела доступного", коли буде досягнуто точка перерви, але ви отримаєте місце виклику в стеку викликів.

Я знайшов це рішення тут на MSDN


Яскравий. Дякую. Мені більше не потрібно змінювати автоматичні властивості на стандартні (з полем). І більше не буде перекомпіляція :)
Marek Kwiendacz

9
це також працює для конструкторів за замовчуванням. використанняClassName.ctor
Călin Darie


1
Тут не працює. Я спробував і те, Form.set_Heightі MainWindow.set_Heightне працювало.
Привіт-Ангел

@ Привіт-Ангел, зауважте, що для сетерів ви повинні включити тип, тож щось на зразок Form.set_Height (int)
Метт Сміт

7

Якби я був ти, я тимчасово зробив би властивість стандартним, підкріпленим внутрішнім полем ... встановив свої точки прориву, а потім можна змінити його після.



2

На Visual Studio 2017:

Наведіть курсор миші на слово "встановити" -> клацніть правою кнопкою миші -> Точку зламу -> Вставити точку розриву

Перед:

До цього

Після:

Після


0

Не встановлюйте точок розриву, де ви встановлюєте власність чи отримуєте майно, іншим способом.

Ви можете зробити це знайти всі посилання варіанти

А оскільки він зберігає лише значення та не має коду в частині встановлення, то що ви налагоджуєте?


3
так, але що, коли ви використовуєте його, наприклад, у 20 місцях? І кожна нова точка розриву уповільнює процес налагодження. Або що робити, якщо доступ до власності здійснюється за рамками (наприклад, серіалізацією)?
Marek Kwiendacz

1
Умовні точки перерви. Поставте точку перерви, клацніть правою кнопкою миші та призначте їй умову ...
Phill
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.