当某个变量等于特定的值时,我想在C#代码中设置一个断点,比如:
MyStringVariable == "LKOH"
我该如何做呢?
我尝试了右键单击断点图标 -> 条件,然后输入 MyStringVariable == "LKOH"
,但 Visual Studio 表示无法评估它。
当某个变量等于特定的值时,我想在C#代码中设置一个断点,比如:
MyStringVariable == "LKOH"
我该如何做呢?
我尝试了右键单击断点图标 -> 条件,然后输入 MyStringVariable == "LKOH"
,但 Visual Studio 表示无法评估它。
如果 (MyStringVariable == "LKOH") Debugger.Break();
你需要使用System.Diagnostics命名空间。
http://msdn.microsoft.com/zh-cn/library/system.diagnostics.debugger.break.aspx
示例代码:
static void Main(string[] args) {
string myvar;
for (int ix = 0; ix < 10; ++ix) {
if (ix == 5) myvar = "bar"; else myvar = "foo";
} // <=== Set breakpoint here
}
条件: myvar == "bar"
运作良好。
就像在代码中一样,你需要使用:
MyStringVariable == "LKOH"
myExchange.Name == "LKOH"
而不是Exchange.Name == "LKOH"
。=
而不是相等运算符==
也可以工作,但这将设置属性并浪费您半个小时的时间来弄清楚发生了什么。我昨天刚犯了这个错误。在我的案例中,我忘记了我正在调试一个VB应用程序。
在VB中,等于号是=
,而不是像许多其他语言一样的==
,因此我的条件断点需要是myString = "someValue"
而不是myString == "someValue"
你需要在断点处保持测试变量的作用域。
var x = "xxx";
{
var y = "yyy";
}
brak(); // x is in scope, y isn't