在调试我的C#时,我经常想知道当变量值改变时 ,然后调查程序的状态。
目前,我这样做:
但是,所需的F10数量很烦人。
我想,这当然是自动化的。但我无法在我的 Microsoft Visual C#Express 中找到此功能,这让我感到惊讶。毕竟,监视列表 会自动以亮红色突出显示已更改的值。
我错过了什么吗?
答案 0 :(得分:21)
Express版的简单技巧:
private string myValue;
public string MyValue
{
set
{
if (this.myValue != value) Debugger.Break();
this.myValue = value;
}
}
答案 1 :(得分:6)
Conditional breakpoints就是你所追求的,但它似乎在Visual Studio Express中不可用。
在Visual Studio(非Express)中,它的工作方式是创建一个条件断点,其表达式等于您的监视值,并且“已更改”作为断点条件。
答案 2 :(得分:0)
以下是我在Visual Studio中的操作方法。按F9或单击最左边距设置断点。然后右键单击出现的红点并选择Condition命令。还有其他选择。
但是,Visual Studio Express可能不支持此功能。
答案 3 :(得分:0)
您可以使用条件断点
请参阅this
答案 4 :(得分:0)
您可以编写一个if语句来检查更改并在if语句中发生断点,因此它最初会中断,然后单击resume,它会一直持续到达到此断点。
答案 5 :(得分:0)
根据某些运行时条件使用Debugger.Break,或右键单击某个断点,然后选择条件中断 - >已经改变了
编辑:在Express
中关于此的dunno答案 6 :(得分:0)
答案 7 :(得分:0)
如果要在某个断点处捕获变量更改,而不是准确捕获更改位置,请设置断点,右键单击它并选择“条件”。假设你的变量名是X,它的当前值是A.在条件字段中输入“X!= A”。
现在只有在X改变为A以外的某个值后才会触发断点。