Условная точка останова в Visual Studio
Я хочу установить точку останова на определенной строке в коде C#, когда какая-то другая переменная равна определенному значению, скажем:
MyStringVariable == "LKOH"
Как я могу это сделать?
Я попытался щелкнуть правой кнопкой мыши значок точки останова - > условие, а затем набрал MyStringVariable == "LKOH"
и Visual Studio сказал, что не может его оценить.
6 ответов
пример кода:
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"
работает хорошо.
if (MyStringVariable == "LKOH") Debugger.Break();
вам понадобится система.Пространство имен диагностики
http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx
Как и в коде, вам нужно использовать:
MyStringVariable == "LKOH"
двойное равенство-это ключ. Без него он говорит, что не может оценить, потому что ваше выражение не оценивает логическое значение.
вы должны быть в состоянии сделать эту работу. Вы используете имя экземпляра Exchange в условии? Условие должно быть что-то вроде myExchange.Name == "LKOH"
не Exchange.Name == "LKOH"
.
кстати, используя оператор присваивания =
вместо оператора равенства ==
будет работать, но он установит свойство и тратить 1/2 часа вашего времени, выясняя, что, черт возьми, происходит. Я совершил эту ошибку только вчера.
переменная, которую вы тестируете, должна быть в области действия в точке останова.
var x = "xxx";
{
var y = "yyy";
}
brak(); // x is in scope, y isn't
в моем случае я забыл, что отлаживаю приложение VB.
в VB равенство =
не ==
как и многие другие языки, поэтому моя условная точка останова должна быть myString = "someValue"
не myString == "someValue"