无法在自动属性设置器上设置断点?为什么?

时间:2010-04-21 11:57:51

标签: visual-studio-2008 .net-3.5 debugging breakpoints automatic-properties

显然VS 2008不允许在自动属性的setter上设置断点。

即。如果我定义这样的自动属性:

    public int CurrentFramesize
    {
        get; 
        protected set;
    }

然后尝试在setter行上设置断点,整个auto-property变为breakpoint-red。

这适用于普通属性,所以任何想法为什么自动属性得到这种特殊(限制性)处理?它们不仅仅是具有隐藏支持字段的正常属性的语法糖吗?

4 个答案:

答案 0 :(得分:29)

使用Visual Studio 2008,2010,2012:

  1. 转到“断点”窗口
  2. New-> Break at Function ...
  3. 获取, 输入:ClassName.get_CurrentFramesize()

    对于该集,请键入:ClassName.set_CurrentFramesize(int)

  4. 当断点被击中时,你会得到一个“No Source Available”,但是你将获得调用堆栈中的调用位置。

    我在这里找到了这个解决方案:http://social.msdn.microsoft.com/Forums/en/vsdebug/thread/b1dd0dc3-e9c1-402a-9c79-a5abf7f7286a

    另请参阅:Debugging automatic properties

答案 1 :(得分:2)

简短的回答是:这个 bug 功能最终出现在VS2008的裁剪房间。

(更长answer - 帽子提示@jdk)

我们所得到的只是一个模糊的承诺,它正在考虑用于vNext。

答案 2 :(得分:1)

答案 3 :(得分:-2)

不,你不能设置它们的断点,但那你会检查什么?用于存储auto-property的变量仅在运行时分配,因此调试器没有变量可供显示/访问。