显然 VS 2008 不允许仅在自动属性的设置器上设置断点。
即,如果我定义这样的自动属性:
public int CurrentFramesize
{
get;
protected set;
}
然后尝试在 setter 行上设置断点,整个自动属性变为断点红色。
这对于普通属性来说效果很好,所以知道为什么自动属性会得到这种特殊(限制性)处理吗?它们不仅仅是带有隐藏支持字段的普通属性的语法糖吗?
显然 VS 2008 不允许仅在自动属性的设置器上设置断点。
即,如果我定义这样的自动属性:
public int CurrentFramesize
{
get;
protected set;
}
然后尝试在 setter 行上设置断点,整个自动属性变为断点红色。
这对于普通属性来说效果很好,所以知道为什么自动属性会得到这种特殊(限制性)处理吗?它们不仅仅是带有隐藏支持字段的普通属性的语法糖吗?
使用 Visual Studio 2008、2010、2012:
对于获取,键入:ClassName.get_CurrentFramesize()
对于集合,键入:ClassName.set_CurrentFramesize(int)
当断点被击中时,您将获得“无可用源”,但您将在调用堆栈中获得调用位置。
我在这里找到了这个解决方案:http: //social.msdn.microsoft.com/Forums/en/vsdebug/thread/b1dd0dc3-e9c1-402a-9c79-a5abf7f7286a
另请参阅:调试自动属性
此功能在 Visual Studio 2015 中实现
不,您不能在它们上设置断点,但是您会检查什么?用于存储自动属性的变量仅在运行时分配,因此没有可供调试器显示/访问的变量。