假设我在类ClassName中有这个自动实现的属性:public int Counter{ get; set; }
我还没有成功地在Visual Studio 2013中的C#自动实现的属性设置器上有一个条件断点。具体来说,在设置的新值上。 (例如,我想在设置为负数时将其断开。)
我知道还有其他解决方案,比如分解属性以使其不是自动实现的属性,或者破坏设置该属性的所有位置。 但我希望能够在没有繁琐的解决方法的情况下做到这一点。
我使用https://stackoverflow.com/a/6713867/119418
中的以下提示成功地在自动实现的属性设置器上进行了断点操作使用Visual Studio 2008,2010,2012,2013:
对于获取,请键入:ClassName.get_Counter()
对于该集,请键入:ClassName.set_Counter(int)
当断点被击中时,你会得到一个“No Source Available”,但是你将获得调用堆栈中的调用位置。
答案 0 :(得分:1)
不完全是问题的答案(对于Visual Studio 2013),但getter和setter的断点预计可以在Visual Studio 2015中使用。
答案 1 :(得分:0)
我不是100%肯定你试图做的事情,如果我得到了正确的你只想设置一个断点到一个属性,如果有人将其设置为负值
我可能会朝着错误的方向前进但是你在寻找这种事情
private int _age;
public int Age
{
get{ return _age; }
set{
if(value < 0)
{ throw somthing;} //add a breakpoint here
else{ _age = value;}
}
}// im writing this directly in the browser so forgive space indentation etc
这可能不是您想要的,但我确实认为这是实现您的要求的最简单方法