punto di interruzione condizionale in Visual Studio
-
21-09-2019 - |
Domanda
voglio impostare un punto di interruzione su una determinata linea di codice C # quando qualche altra variabile è pari ad un valore specifico, ad esempio:
MyStringVariable == "LKOH"
Come posso fare questo?
Ho cercato di fare clic destro sull'icona punto di interruzione -> Stato e quindi digitato MyStringVariable == "LKOH"
e Visual Studio detto che non può valutarlo
Soluzione
Codice di esempio:
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
}
Condizione: myvar == "bar"
funziona bene.
Altri suggerimenti
if (MyStringVariable == "LKOH") Debugger.Break();
è necessario System.Diagnostics spazio dei nomi
http://msdn.microsoft.com/ it-it / library / system.diagnostics.debugger.break.aspx
Proprio come in codice, è necessario utilizzare:
MyStringVariable == "LKOH"
Le doppie-eguali è la chiave. Senza di essa, sta dicendo che non può valutare, perché la tua espressione non restituisce un valore booleano.
Si dovrebbe essere in grado di fare questo lavoro. Si sta utilizzando il nome di istanza di Exchange nella condizione? La condizione dovrebbe essere qualcosa di simile myExchange.Name == "LKOH"
non Exchange.Name == "LKOH"
.
Tra l'altro, utilizzando l'operatore di assegnazione =
anziché l'operatore ==
uguaglianza funzionerà ma sarà impostare la proprietà e sprecare 1/2 ora del vostro tempo per capire cosa diavolo sta succedendo. Ho fatto questo errore proprio ieri.
La variabile che si sta testando per le esigenze di essere portata al punto di interruzione.
var x = "xxx";
{
var y = "yyy";
}
brak(); // x is in scope, y isn't
Nel mio caso, ho dimenticato che ero il debug di un'applicazione VB.
In VB uguaglianza è =
non ==
come molte altre lingue, così il mio punto di interruzione condizionale aveva bisogno di essere myString = "someValue"
non myString == "someValue"