Условная точка останова в Visual Studio - PullRequest
18 голосов
/ 19 февраля 2010

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

MyStringVariable == "LKOH"

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

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

Ответы [ 6 ]

36 голосов
/ 19 февраля 2010

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

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

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

25 голосов
/ 19 февраля 2010

Пример кода:

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"

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

7 голосов
/ 19 февраля 2010

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

MyStringVariable == "LKOH"

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

5 голосов
/ 19 февраля 2010

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

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

1 голос
/ 03 августа 2016

В моем случае я забыл, что я отлаживал приложение VB.

В VB равенство = не ==, как и во многих других языках, поэтому моя условная точка останова должна была быть myString = "someValue", а не myString == "someValue"

1 голос
/ 19 февраля 2010

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

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

brak(); // x is in scope, y isn't
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...