punto de interrupción condicionales en Visual Studio
-
21-09-2019 - |
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
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"