Не можете установить точки останова на установщике авто-свойств? Зачем? - PullRequest
25 голосов
/ 21 апреля 2010

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

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

    public int CurrentFramesize
    {
        get; 
        protected set;
    }

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

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

Ответы [ 4 ]

29 голосов
/ 16 июля 2011

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

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

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

Вы получите «Источник недоступен» при достижении точки останова,но вы получите место вызова в стеке вызовов.

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

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

2 голосов
/ 30 апреля 2010

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

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

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

1 голос
/ 25 мая 2015
0 голосов
/ 21 апреля 2010

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

...