Условная точка останова в Visual Studio

Я хочу установить точку останова на определенной строке в коде C#, когда некоторая другая переменная равна определенному значению, скажите:

MyStringVariable == "LKOH"

Как я могу сделать это?

Я пытался щелкнуть правой кнопкой по значку точки останова-> Условие и затем введенный MyStringVariable == "LKOH" и в Visual Studio было сказано, что она не может оценить его.

18
задан Peter Mortensen 7 December 2012 в 12:15
поделиться

5 ответов

Пример кода:

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"

Работает хорошо.

25
ответ дан 30 November 2019 в 05:45
поделиться

Вы должны быть в состоянии заставить это работать. Используете ли вы имя экземпляра Exchange в условии? Условие должно быть примерно таким myExchange.Name == "LKOH", а не Exchange.Name == "LKOH".

Кстати, использование оператора присваивания = вместо оператора равенства == будет работать, но установит свойство и потратит 1/2 часа вашего времени на выяснение того, что, черт возьми, происходит. Я сделал эту ошибку только вчера.

5
ответ дан 30 November 2019 в 05:45
поделиться

Переменная, которую вы тестируете, должна быть в области видимости в точке останова.

var x = "xxx";
{ 
  var y = "yyy";
}

brak(); // x is in scope, y isn't
1
ответ дан 30 November 2019 в 05:45
поделиться

Как и в коде, вам нужно использовать:

MyStringVariable == "LKOH"

Двойное равенство - это ключ. Без него он говорит, что не может вычислить, потому что ваше выражение не оценивает логическое значение.

7
ответ дан 30 November 2019 в 05:45
поделиться

if (MyStringVariable == "LKOH") Debugger.Break ();

вам понадобится пространство имен System.Diagnostics

http://msdn.microsoft.com/en-us /library/system.diagnostics.debugger.break.aspx

36
ответ дан 30 November 2019 в 05:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: