Freigeben über


Nicht unterstützte Bearbeitungen beim Bearbeiten und Fortsetzen in Visual Basic

"Bearbeiten und Fortfahren" bietet im Unterbrechungsmodus die Möglichkeit, die Programmausführung anzuhalten, Änderungen im Ausführungscode vorzunehmen und die Programmausführung mit den neu eingefügten Änderungen wieder aufzunehmen. Bearbeitungen von deklarativem Code, die die öffentliche Struktur einer Klasse beeinflussen, sind generell unzulässig. Viele der Bearbeitungen, die Sie ggf. an einer Methode, an Eigenschaftentext oder an privaten Deklarationen in einer Klasse vornehmen, sind dagegen zulässig. Nach Möglichkeit wird Code, der nicht bearbeitet werden kann, im Modus "Bearbeiten und Fortfahren" hellgrau markiert.

Wenn Sie eine nicht unterstützte Änderungen vornehmen möchten, müssen Sie das Debuggen unterbrechen, die Änderungen vornehmen und eine neue Debugsitzung starten.

In diesem Thema

In den folgenden Abschnitten werden die im Modus "Bearbeiten und Fortfahren" nicht unterstützten Änderungen beschrieben.

Bearbeitungen von Methoden- und Eigenschaftentext

Bearbeitungen von Attributen

Bearbeitungen von Klassendeklarationen

Bearbeitungen von Klassenmemberdeklarationen

Bearbeitungen von Compileroptionen

Bearbeitungen bedingter Kompilierungen

Bearbeitungen von Konstanten

Bearbeitungen von Delegat- und Ereignis-Deklarationen

Bearbeitungen von Enumerationen

Bearbeitungen externer Deklarationen

Bearbeitungen von Importen

Bearbeitungen von Schnittstellendefinitionen

Bearbeitungen von Moduldeklarationen

Bearbeitungen von Modulmemberdeklarationen

Bearbeitungen von Deklarationsbearbeitungen des geschachtelten Typs

Bearbeitungen von Strukturdeklarationen

Bearbeitungen von Methoden- und Eigenschaftentext

Nicht unterstützte Änderungen an statischen lokalen Variablen

  • Entfernen einer statischen lokalen Variablen.

Nicht unterstützte Änderungen an Iterationskonstrukten

  • Ändern der Bedingung für eine While-Schleife, wenn der Anweisungszeiger Teil der Bedingung ist.

  • Ändern der Unter- oder Obergrenze einer For-Anweisung, wenn der Anweisungszeiger Teil des Ausdrucks ist.

  • Hinzufügen oder Entfernen einer Next-Schleife, wenn der Anweisungszeiger im Enumeratorausdruck verwendet wird.

  • Einfügen einer For Each-Schleife, wenn der Anweisungszeiger innerhalb des Schleifentexts liegt.

  • Ändern des Iterators einer For Each-Schleife, wenn sich der Anweisungszeiger im Enumeratorausdruck oder innerhalb der Schleife befindet.

  • Ändern des Enumeratorausdrucks einer For Each-Schleife, wenn sich der Anweisungszeiger im Enumeratorausdruck befindet.

Nicht unterstützte Änderungen an Generika

  • Änderungen an der generischen Methode selbst oder am Text von generischen Methoden werden nicht unterstützt. Die Instanziierung eines generischen Typs oder Aufrufe von vorhandenen generischen Methoden können hinzugefügt, gelöscht oder geändert werden.

Andere nicht unterstützte Änderungen

  • Ändern der Aufrufanweisung für eine Methode in der Aufrufliste.

  • Hinzufügen eines Try...Catch-Blocks, wenn der Anweisungszeiger im Catch-Block oder im Finally-Block endet.

  • Entfernen eines Try...Catch-Blocks, wenn der Anweisungszeiger sich in einem Catch-Block oder einem Finally-Block befindet.

  • Hinzufügen von mindestens sechs geschachtelten Try-Anweisungen um den aktuellen Anweisungszeiger herum.

  • Hinzufügen eines Using-Blocks um den aktuellen Anweisungszeiger herum.

  • Hinzufügen eines SynchLock-Blocks um den aktuellen Anweisungszeiger herum.

  • Hinzufügen, Entfernen oder Ändern einer benutzerdefinierten #region.

Bearbeitungen von Attributen

Von "Bearbeiten und Fortfahren" wird das Ändern von Attributen nicht unterstützt. Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Definieren, Bearbeiten oder Löschen einer Attributklasse.

  • Hinzufügen eines Attributs.

  • Bearbeiten oder Entfernen eines vorhandenen Attributs.

Bearbeitungen von Klassendeklarationen

Die meisten Änderungen an Klassendeklarationen werden im Unterbrechungsmodus von "Bearbeiten und Fortfahren" nicht zugelassen. Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Erstellen einer neuen Klasse.

  • Umbenennen, Löschen oder Ändern der Vererbung einer vorhandenen Klasse.

  • Implementieren einer neuen Schnittstelle oder Entfernen der Implementierung einer Schnittstelle.

  • Ändern eines der folgenden Modifizierer für eine Klasse: MustInherit, NotInheritable oder Shared.

  • Hinzufügen, Ändern oder Entfernen des ComClass-Status.

  • Ändern des Zugriffsmodifizierers für eine Klasse.

  • Bearbeiten der Deklaration einer generischen Klasse.

Bearbeitungen von Klassenmemberdeklarationen

Änderungen an Memberdeklarationen mit "Bearbeiten und Fortsetzen" sind in den meisten Fällen unzulässig. Sie dürfen im Unterbrechungsmodus z. B. die Signatur oder Zugriffsebene eines Members nicht ändern, keine neue nicht private Methode oder Eigenschaft deklarieren und Member nicht komplett löschen. Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Shadowing einer vorhandenen Membervariablen durch Deklaration einer globalen Variablen oder einer Membervariablen mit demselben Namen im umschließenden Block.

  • Shadowing einer statischen lokalen Variablen durch Deklaration einer neuen Instanz innerhalb eines Blocks.

  • Hinzufügen einer neuen, nicht privaten Eigenschaft oder Methode. Das Hinzufügen einer Private-Eigenschaft oder -Methode ist zulässig.

  • Definieren eines neuen Felds, es sei denn, das Feld ist Private, und der Feldname kommt in keiner aktiven Anweisung vor.

  • Hinzufügen eines neuen Private-Felds in einer mit SequentialLayout oder ExplicitLayout markierten Klasse.

  • Hinzufügen und Löschen eines Konstruktors.

  • Entfernen von Ereignishandlern. Das Hinzufügen eines Ereignishandlers ist zulässig.

  • Definieren einer Eigenschaft oder Methode als Überladung, es sei denn, die Eigenschaft bzw. Methode ist Private, und der Name kommt in keiner aktiven Anweisung vor.

  • Hinzufügen oder Entfernen der WithEvents-Klausel einer Membervariablen.

  • Löschen eines Members.

  • Ändern einer Eigenschaft oder einer Methodendeklaration zum Beenden der Implementierung einer Schnittstelle.

  • Bearbeiten einer Methode, die Generika verwendet.

  • Ändern der Signatur oder des Rückgabetyps einer nicht privaten Eigenschaft oder Methode.

  • Überschreiben oder Shadowing des Members einer Basisklasse.

  • Ändern des MustInherit-Status bzw. NotOverridable-Status einer Methode.

  • Ändern der Zugriffsmodifizierer einer Eigenschaft oder einer Methode.

  • Ändern des Typs oder des Schreibschutzstatus eines Felds.

  • Ändern eines öffentlichen Felds.

Bearbeitungen von Compileroptionen

Bei der Verwendung von "Bearbeiten und Fortfahren" im Unterbrechungsmodus ist es unzulässig, die folgenden Compileroptionen zu ändern, hinzuzufügen oder zu entfernen:

  • Option Strict

  • Option Explicit

  • Option Compare

Bearbeitungen bedingter Kompilierungen

Die meisten Änderungen an bedingten Kompilierungsdirektiven sind im Modus "Bearbeiten und Fortfahren" nicht möglich. Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Hinzufügen oder Entfernen bedingter Kompilierungsdirektiven.

  • Hinzufügen, Entfernen oder Ändern des Auswertungsausdrucks einer bedingten Kompilierungsanweisung.

Bearbeitungen von Konstanten

Im Modus "Bearbeiten und Fortfahren" sind Änderungen an Konstanten nur sehr eingeschränkt möglich. Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Definieren einer neuen Konstante, es sei denn, die Konstante ist als privat deklariert, und der Name der Konstante kommt in keiner aktiven Anweisung vor.

  • Ändern des Typs oder des Werts einer Konstante.

  • Entfernen einer Konstante.

Bearbeitungen von Delegat- und Ereignis-Deklarationen

Die meisten Änderungen von Delegaten und Ereignissen werden im Unterbrechungsmodus von "Bearbeiten und Fortfahren" nicht zugelassen. Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Definieren von neuen Delegaten.

  • Ändern oder Löschen einer Delegatdefinition.

  • Definieren eines neuen Ereignisses.

  • Löschen eines Ereignisses.

Bearbeitungen von Enumerationen

Änderungen an Enumerationen (Enums) werden vom "Bearbeiten und Fortfahren im Unterbrechungsmodus nicht unterstützt. Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Definieren einer neuen Enum.

  • Ändern des zugrunde liegenden Typs einer Enum.

  • Hinzufügen, Ändern oder Entfernen von Membern einer Enum.

  • Ändern des Zugriffsmodifizierers einer Enum.

Bearbeitungen externer Deklarationen

Im Allgemeinen können Sie die Deklarationen externer Methoden im Modus "Bearbeiten und Fortfahren" nicht ändern. Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Hinzufügen oder Entfernen einer externen Deklaration.

  • Ändern der Signatur oder Marshallen von Attributen einer externen Deklaration.

Bearbeitungen von Importen

Mit "Bearbeiten und Fortfahren" können Sie im Unterbrechungsmodus keine Imports-Anweisungen hinzufügen, ändern oder entfernen.

Bearbeitungen von Schnittstellendefinitionen

Zwar dürfen Sie häufig Änderungen an Membern vornehmen, die Schnittstellen implementieren, allerdings sind im Modus "Bearbeiten und Fortfahren" im Allgemeinen keine Änderungen an den eigentlichen Schnittstellendefinitionen zulässig. Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Definieren einer neuen Schnittstelle.

  • Hinzufügen, Ändern und Entfernen von Schnittstellenmembern.

  • Löschen einer vorhandenen Schnittstelle.

  • Ändern des Zugriffsmodifizierers einer Schnittstelle.

  • Ändern der Schnittstellenvererbungshierarchie.

Bearbeitungen von Moduldeklarationen

Die meisten Änderungen an Moduldeklarationen sind nicht zulässig, solange "Bearbeiten und Fortfahren" aktiviert ist und Sie sich im Unterbrechungsmodus befinden. Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Erstellen eines neuen Moduls.

  • Umbenennen oder Löschen eines vorhandenen Moduls.

  • Ändern des Zugriffsmodifizierers für ein Modul.

Bearbeitungen von Modulmemberdeklarationen

Mithilfe von "Bearbeiten und Fortfahren" können Sie im Unterbrechungsmodus eine Reihe von Änderungen an Modulmembern, z. B. Eigenschaften, Methoden und Feldern, vornehmen. Einige Änderungen werden jedoch nicht unterstützt. Von "Bearbeiten und Fortfahren" wird vor allem das Hinzufügen, Löschen oder Ändern des Typs oder der Signatur eines nicht privaten Members nicht unterstützt.

Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Hinzufügen eines neuen Members, es sei denn, der Member ist als Private deklariert, und der Name kommt in keiner aktiven Anweisung vor.

  • Entfernen einer Eigenschaft oder Methode.

  • Ändern der Signatur einer nicht privaten Eigenschaft oder Methode.

  • Bearbeiten einer Methode, die Generika verwendet.

  • Ändern der Zugriffsmodifizierer einer Eigenschaft oder Methode, z. B. Public in Private.

  • Löschen oder Ändern des Typs eines vorhandenen Felds.

Bearbeitungen von Deklarationsbearbeitungen des geschachtelten Typs

Im Allgemeinen können Sie im Unterbrechungsmodus keine Änderungen an geschachtelten Typdeklarationen vornehmen, bei Verwendung der Funktion "Bearbeiten und Fortfahren". Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Hinzufügen eines neuen geschachtelten Typs.

  • Verschieben eines geschachtelten Typs in einen anderen Namespace bzw. Typ.

Bearbeitungen von Strukturdeklarationen

Die meisten Änderungen an Strukturdeklarationen sind im Modus "Bearbeiten und Fortfahren" nicht zulässig, solange Sie sich im Unterbrechungsmodus befinden. Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Erstellen einer neuen Struktur.

  • Umbenennen bzw. Löschen einer vorhandenen Struktur.

  • Implementieren einer neuen Schnittstelle oder Entfernen der Implementierung einer Schnittstelle.

  • Ändern des Zugriffsmodifizierers für eine Struktur.

Bearbeitungen von Strukturmemberdeklarationen

Mithilfe von "Bearbeiten und Fortfahren" können Sie im Unterbrechungsmodus eine Reihe von Änderungen an Strukturmembern (Eigenschaften, Methoden und Feldern) vornehmen. Einige Änderungen werden jedoch nicht unterstützt, insbesondere Änderungen, die die Deklaration von Strukturmembern beeinflussen. Insbesondere werden von "Bearbeiten und Fortfahren" die folgenden Änderungen nicht unterstützt:

  • Hinzufügen oder Entfernen von Eigenschaften oder Methoden, einschließlich Konstruktormethoden – außer die Methode ist Private, und der Feldname taucht in keiner aktiven Anweisung auf.

  • Ändern der Signatur einer Eigenschaft oder Methode.

  • Bearbeiten einer Methode, die Generika verwendet.

  • Ändern, ob eine Eigenschaften- oder Methodendeklaration eine Schnittstelle implementiert oder nicht.

  • Ändern der Zugriffsmodifizierer einer Eigenschaft oder Methode (z. B. Public in Private).

  • Hinzufügen oder Entfernen eines Felds.

  • Ändern des Typs eines Felds.

Siehe auch

Aufgaben

Gewusst wie: Anwenden von Bearbeitungen im Unterbrechungsmodus mithilfe von "Bearbeiten und Fortfahren"

Weitere Ressourcen

Bearbeiten und Fortfahren (Visual Basic)