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