Unterstützte Codeänderungen (C# und Visual Basic)

Die Funktion "Bearbeiten und Fortfahren" behandelt die meisten Arten von Codeänderungen in Methodentexten. 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.

Unterstützte Änderungen an Code

In der folgenden Tabelle sind die Änderungen aufgeführt, die während einer Debugsitzung ohne Neustart der Sitzung an C#- und Visual Basic-Code vorgenommen werden können.

Sprachelement/Feature Unterstützter Bearbeitungsvorgang Einschränkungen
Typen Hinzufügen von Methoden, Feldern, Konstruktoren usw. Ja
Iterators Hinzufügen oder ändern Nein
async-/await-Ausdrücke Hinzufügen oder ändern Ja
Dynamische Objekte Hinzufügen oder ändern Nein
Lambdaausdrücke Hinzufügen oder ändern Ja
LINQ-Ausdrücke Hinzufügen oder ändern Wie bei Lambdaausdrücken

Hinweis

Neuere Sprachfeatures wie Zeichenfolgeninterpolation und NULL-bedingte Operatoren werden von „Bearbeiten und Fortfahren“ in der Regel unterstützt. Aktuelle Informationen finden Sie auf der Seite Von „Bearbeiten und Fortfahren“ unterstützte Bearbeitungsvorgänge.

Nicht unterstützte Änderungen an Code

Folgende Änderungen am C#- und Visual Basic-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 der Aufrufliste, die aufgerufen wurden, um zur aktuellen Anweisung zu gelangen.

    Die aktuelle Anweisung wird im Quellcodefenster durch einen gelben Hintergrund gekennzeichnet. Andere aktive Anweisungen werden durch einen schattierten Hintergrund gekennzeichnet und sind schreibgeschützt. Diese Standardfarben können im Dialogfeld Optionen geändert werden.

  • Die folgende Tabelle enthält nicht unterstützte Änderungen am Code nach Sprachelement.

Sprachelement/Feature Nicht unterstützter Bearbeitungsvorgang
Alle Codeelemente Umbenennen
Namespaces Hinzufügen
Namespaces, Typen, Member Löschen
Generics Hinzufügen oder ändern
Schnittstellen Ändern
Typen Hinzufügen abstrakter oder virtueller Member, Hinzufügen von Außerkraftsetzung (siehe Details)
Typen Destruktor hinzufügen
Member Ändern eines Members, der auf einen eingebetteten Interoptyp verweist
Member Ändern eines statischen Members, nachdem darauf durch Ausführen von Code bereits zugegriffen wurde
Member (Visual Basic) Ändern eines Members mit On Error- oder Resume-Anweisung
Member (Visual Basic) Ändern eines Members, der eine LINQ-Abfrageklausel vom Typ „Aggregate“, „Group By“, „Simple Join“ oder „Group Join“ enthält
Methoden Ändern von Signaturen
Methoden Festlegen einer abstrakten Methode als nicht abstrakte Methode durch Hinzufügen eines Methodenkörpers
Methoden Löschen eines Methodenkörpers
Attribute Hinzufügen oder ändern
Ereignisse oder Eigenschaften Ändern eines Typparameters, Basistyps, Delegattyps oder Rückgabetyps
Operatoren oder Indexer Ändern eines Typparameters, Basistyps, Delegattyps oder Rückgabetyps
catch-Blöcke Ändern, wenn eine aktive Anweisung enthalten ist
Blöcke vom Typ „try-catch-finally“ Ändern, wenn eine aktive Anweisung enthalten ist
Using-Anweisungen Hinzufügen
Async-Methoden oder -Lambdaausdrücke Ändern einer Async-Methode oder eines Async-Lambdaausdrucks in einem Projekt für .NET Framework 4 und niedrigere Versionen (siehe Details)
Iterators Ändern eines Iterators in einem Projekt für .NET Framework 4 und niedrigere Versionen (siehe Details)

Unsicherer Code

Änderungen an unsicherem Code unterliegen denselben Einschränkungen wie Änderungen an sicherem Code, allerdings mit einer zusätzlichen Einschränkung: Die Funktion „Bearbeiten und Fortfahren“ unterstützt keine Änderungen an unsicherem Code, der sich innerhalb einer Methode mit dem stackalloc-Operator befindet.

Nicht unterstützte App-Szenarien

Nicht unterstützte Apps und Plattformen sind u. a. Silverlight 5 und Windows 8.1. Zu den nicht unterstützten Szenarien in ASP.NET und ASP.NET-Core gehören das Bearbeiten von .aspx, .ascx, .cshtml und .razor Dateien.

Hinweis

Zu den unterstützten Apps zählen UWP-Apps in Windows 10 sowie x86- und x64-Apps, die für die Desktopversion von .NET Framework 4.6 oder höhere Versionen vorgesehen sind. (.NET Framework ist nur als Desktopversion verfügbar.)

Nicht unterstützte Szenarien

Bearbeiten und Fortfahren steht in den folgenden Debugszenarios nicht zur Verfügung:

  • Debuggen im gemischten Modus (systemeigen/verwaltet).

  • SQL-Debuggen.

  • Debuggen einer Dr. Watson-Sicherungskopie.

  • Debuggen einer eingebetteten Laufzeitanwendung.

  • Debuggen einer Anwendung mit „An Prozess anhängen“ (Debuggen > An Prozess anhängen), anstatt die Anwendung durch Auswählen von Start im Menü Debuggen auszuführen

  • Debuggen von optimiertem Code.

  • Debuggen einer alten Version des Codes, wenn eine neue Version aufgrund von Buildfehlern nicht erstellt werden konnte.

Siehe auch