Не можете установить точки останова в автоматическом установщике свойств? Почему?

По-видимому, VS 2008 не позволяет устанавливать точку останова только в установщике автоматического свойства.

т.е. если я определяю автоматическое свойство следующим образом:

    public int CurrentFramesize
    {
        get; 
        protected set;
    }

а затем попробуйте установить точку останова в строке установки, все автоматическое свойство становится красным.

Это прекрасно работает для обычных свойств, так что есть идеи, почему авто-свойства подвергаются такому специальному (ограничительному) обращению? Являются ли они чем-то большим, чем просто синтаксический сахар для обычных свойств со скрытым резервным полем?


person Cristian Diaconescu    schedule 21.04.2010    source источник
comment
Ты прав. Я заметил то же самое.   -  person Tom Cabanski    schedule 21.04.2010
comment
Ответ Microsoft connect. microsoft.com/VisualStudio/feedback/details/408762/   -  person John K    schedule 21.04.2010
comment
Я отчаянно надеялся, что эта функция появится в VS2010 :(   -  person bitbonk    schedule 29.07.2010
comment
@bitbonk ... и я полагаю, что нет? :(   -  person Cristian Diaconescu    schedule 06.08.2010
comment
Вы правильно предполагаете. Это все еще не работает в VS 2010.   -  person bitbonk    schedule 06.08.2010
comment
возможный дубликат Отладка автоматических свойств   -  person Eugene Maksimov    schedule 24.11.2014


Ответы (4)


Использование Visual Studio 2008, 2010, 2012:

  1. Перейти к окну точки останова
  2. Новый->Перерыв в функции…
  3. Для получения введите: ClassName.get_CurrentFramesize()

    Для набора введите: ClassName.set_CurrentFramesize(int)

Вы получите сообщение «Нет доступных источников», когда сработает точка останова, но вы получите место вызова в стеке вызовов.

Я нашел это решение здесь: http: //social.msdn.microsoft.com/Forums/en/vsdebug/thread/b1dd0dc3-e9c1-402a-9c79-a5abf7f7286a

См. также: Отладка автоматических свойств

person Matt Smith    schedule 15.07.2011
comment
Как-то два с половиной года я пропустил твой ответ. +1 и принято! :) - person Cristian Diaconescu; 27.11.2013
comment
Работает в Visual Studio 2019 (пункт 2. New-> Function Breakpoint... - person jarmanso7; 12.05.2020

Короткий ответ: эта функция bug оказалась на полу монтажной для VS2008.

(Больше ответ - подсказка @jdk)

Все, что у нас есть, это расплывчатое обещание, что это рассматривается для vNext.

person Cristian Diaconescu    schedule 29.04.2010


Нет, вы не можете установить на них точку останова, но тогда что бы вы проверили? Переменная для хранения автоматического свойства назначается только во время выполнения, и поэтому отладчик не имеет переменной для отображения/доступа.

person ChrisBD    schedule 21.04.2010
comment
Возможно, вы захотите проверить когда ему присвоено значение, если оно откуда-то получает неправильное значение. - person Hans Kesting; 21.04.2010
comment
@Ханс Кестинг: Точно. Отладчик CLR не имеет точек останова data, поэтому, если бы это поддерживалось, это было бы лучше всего. - person Cristian Diaconescu; 21.04.2010