Pregunta

Quiero establecer un punto de interrupción en una línea determinada en C # código cuando alguna otra variable es igual a un valor específico, digo:

MyStringVariable == "LKOH"

¿Cómo puedo hacer eso?

He intentado hacer clic derecho sobre el icono de punto de interrupción -.> Condición y después se pasan MyStringVariable == "LKOH" y Visual Studio dicho que no puede evaluarlo

¿Fue útil?

Solución

Código de ejemplo:

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
}

Estado: mivar == "barra"

funciona bien.

Otros consejos

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

que necesita espacio de nombres System.Diagnostics

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

Al igual que en el código, es necesario utilizar:

MyStringVariable == "LKOH"

Los dobles iguales es la clave. Sin ella, es decir que no puede evaluar debido a que su expresión no se evalúa como un valor lógico.

debe ser capaz de hacer este trabajo. ¿Está utilizando el nombre de la instancia de cambio en la condición? La condición debe ser algo como myExchange.Name == "LKOH" no Exchange.Name == "LKOH".

Por cierto, utilizando el operador de asignación = en lugar del operador de igualdad == funcionará pero llevará a la propiedad y perder media hora de su tiempo en averiguar qué demonios está pasando. Hice este error ayer.

La variable está tratando de detectar necesidades para estar en el alcance en el punto de interrupción.

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

brak(); // x is in scope, y isn't

En mi caso, se me olvidó que estaba depurando una aplicación de VB.

En VB igualdad es = no == al igual que muchos otros idiomas, así mi punto de interrupción condicional necesitaba estar myString = "someValue" no myString == "someValue"

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top