Unterstützte Codeänderungen (C#)
Dieses Thema gilt für folgende Anwendungsbereiche:
Edition |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro, Premium und Ultimate |
Bearbeiten und Fortfahren behandelt die meisten Arten von Änderungen, die am Code im Methodentext vorgenommen werden. Die meisten Änderungen außerhalb von Methodentexten sowie einige Änderungen in Methodentexten können jedoch während des Debuggens nicht übernommen werden. Wenn Sie diese nicht unterstützten Änderungen übernehmen möchten, müssen Sie das Debuggen beenden und mit einer neuen Version des Codes erneut starten.
Folgende Änderungen an C#-Code können während einer Debugsitzung nicht übernommen werden:
Änderungen an der aktuellen Anweisung oder einer beliebigen anderen aktiven Anweisung.
Aktive Anweisungen umfassen alle Anweisungen in Funktionen auf der Aufrufliste, die aufgerufen wurden, um zur aktuellen Anweisung zu gelangen.
Die aktuelle Anweisung wird im Quellcodefenster mit einem gelben Hintergrund markiert. Andere aktive Anweisungen werden mit einem grauen Hintergrund markiert und sind schreibgeschützt. Diese Standardfarben können im Dialogfeld Optionen geändert werden.
Änderungen an globalen Symbolen, einschließlich der Folgenden:
Hinzufügen von neuen Typen.
Hinzufügen von Methoden zu einem Typ.
Ändern der Signatur eines Typs.
Hinzufügen von Feldern, Ereignissen oder Eigenschaften zu einem Typ.
Bearbeiten einer anonymen Methode oder einer beliebigen Methode, die eine anonyme Methode enthält. Diese Methoden werden mit einem grauen Hintergrund markiert.
Hinzufügen einer neuen anonymen Methode.
Hinzufügen, Entfernen oder Ändern von Attributen.
Hinzufügen, Entfernen oder Ändern von using-Direktiven.
Entfernen oder Ändern lokaler Variablen. Das Hinzufügen lokaler Variablen ist gestattet.
Hinzufügen von foreach, using oder lock zu der aktiven Anweisung.
Ändern einer Methode, die eine yield return-Anweisung oder eine yield break-Anweisung enthält.
Ändern eines Konstruktors mit einem Feld, das durch eine anonyme Methode initialisiert wird.
Unsicherer Code
Änderungen an unsicherem Code unterliegen denselben Einschränkungen wie Änderungen an sicherem Code, allerdings mit einer zusätzlichen Einschränkung:
- Von "Bearbeiten" und "Fortfahren" werden keine Änderungen an unsicherem Code unterstützt, der sich innerhalb einer Methode mit dem Operator "stackalloc" befindet. Dies gilt nur für aktive Methoden. Während des Debuggens ist jede Funktion, die gerade in der Aufrufliste enthalten ist, eine aktive Funktion.
Ausnahmen
Bearbeiten und Fortfahren unterstützt Änderungen an catch-Blöcken, finally-Blöckenund try-Blöcken. Es gelten einige Ausnahmen für Blöcke in aktiven Methoden, z. B. Methoden, die gegenwärtig in der Aufrufliste enthalten sind.
In einer aktiven Funktion, die die aktuellste Funktion auf der Aufrufliste ist, wird von Bearbeiten und Fortfahren Folgendes nicht unterstützt:
Hinzufügen eines catch-Blocks oder eines finally-Blocks zu der aktiven Anweisung.
Hinzufügen von geschachtelten Ausnahmehandlern mit mehr als sechs Schachtelungsebenen.
In einer aktiven Funktion, die nicht die aktuellste Funktion auf der Aufrufliste ist, wird von Bearbeiten und Fortfahren Folgendes nicht unterstützt:
Hinzufügen eines catch-Blocks, eines finally-Blocks oder eines try-Blocks zu der aktiven Anweisung.
Hinzufügen von geschachtelten Ausnahmehandlern mit mehr als sechs Schachtelungsebenen.
Ändern von Code innerhalb eines try-Blocks, der die aktive Anweisung enthält.
Nicht unterstützte Szenarios
Bearbeiten und Fortfahren steht in den folgenden Debugszenarios nicht zur Verfügung:
Debuggen von LINQ-Code Weitere Informationen finden Sie unter Bearbeiten und Fortfahren mit LINQ.
Debuggen im gemischten Modus (systemeigen/verwaltet).
SQL-Debuggen.
Debuggen eines Dr.Watson-Dumps.
Bearbeiten von Code nach einer nicht behandelten Ausnahme, wenn die Option "Aufrufliste für unbehandelte Ausnahmen entladen" nicht aktiviert ist.
Debuggen einer eingebetteten Laufzeitanwendung.
Debuggen einer Anwendung mit Anfügen an, anstatt die Anwendung im Menü Debuggen durch Auswählen von Start auszuführen.
Debuggen von optimiertem Code.
Debuggen von verwaltetem Code, wenn das Ziel eine 64-Bit-Anwendung ist. Wenn Sie Bearbeiten und Fortfahren verwenden möchten, müssen Sie das Ziel auf x86 festlegen. (ProjektEigenschaften, Registerkarte Kompilieren, Erweiterte Compilereinstellungen.)
Debuggen einer alten Version des Codes, wenn eine neue Version aufgrund von Buildfehlern nicht erstellt werden konnte.
Siehe auch
Aufgaben
Gewusst wie: Verwenden von "Bearbeiten und Fortfahren" (C#)
Referenz
Bearbeiten und Fortfahren (Visual C#)
Weitere Ressourcen
Bearbeiten und Fortfahren: Fehlermeldungen und Warnungen (C#)