当其他变量等于特定值时,我想在 C# 代码中的某一行设置断点,例如:
MyStringVariable == "LKOH"
我怎样才能做到这一点?
我试图右键单击断点图标-> 条件,然后键入MyStringVariable == "LKOH"
,Visual Studio 说它无法评估它。
当其他变量等于特定值时,我想在 C# 代码中的某一行设置断点,例如:
MyStringVariable == "LKOH"
我怎样才能做到这一点?
我试图右键单击断点图标-> 条件,然后键入MyStringVariable == "LKOH"
,Visual Studio 说它无法评估它。
if (MyStringVariable == "LKOH") Debugger.Break();
你需要 System.Diagnostics 命名空间
http://msdn.microsoft.com/en-us/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"
双等号是关键。没有它,它表示它无法评估,因为您的表达式不会评估为布尔值。
你应该能够完成这项工作。您是否在条件中使用 Exchange 实例名称?条件应该类似于myExchange.Name == "LKOH"
not Exchange.Name == "LKOH"
。
顺便说一句,使用赋值运算符=
而不是相等运算符==
会起作用,但它会设置属性并浪费 1/2 小时的时间来弄清楚到底发生了什么。我昨天才犯了这个错误。
就我而言,我忘记了我正在调试一个 VB 应用程序。
在 VB 中,相等性=
不像==
许多其他语言,因此我的条件断点需要myString = "someValue"
不是myString == "someValue"
您正在测试的变量需要在断点的范围内。
var x = "xxx";
{
var y = "yyy";
}
brak(); // x is in scope, y isn't