Konfigurieren von Warnungen in Visual Basic
Der Visual Basic-Compiler enthält eine Reihe von Warnungen zu Code, die Laufzeitfehler verursachen können. Sie können diese Informationen verwenden, um übersichtlicheren, schnelleren, besseren Code mit weniger Fehlern zu schreiben. Beispielsweise erzeugt der Compiler eine Warnung, wenn der Benutzer versucht, ein Element einer nicht zugewiesenen Objektvariable aufzurufen, von einer Funktion zurückzugeben, ohne den Rückgabewert festzulegen, oder einen Try
Block mit Fehlern in der Logik ausführen, um Ausnahmen abzufangen.
Manchmal stellt der Compiler zusätzliche Logik im Namen des Benutzers bereit, damit sich der Benutzer auf die aufgabe konzentrieren kann, anstatt mögliche Fehler zu antizipieren. In früheren Versionen von Visual Basic wurde Option Strict verwendet, um die zusätzliche Logik einzuschränken, die der Visual Basic-Compiler bereitstellt. Durch das Konfigurieren von Warnungen können Sie diese Logik präziser auf Ebene der einzelnen Warnungen einschränken.
Möglicherweise möchten Sie Ihr Projekt anpassen und einige Warnungen deaktivieren, die für Ihre Anwendung nicht relevant sind, während andere Warnungen in Fehler umgewandelt werden. Auf dieser Seite wird erläutert, wie Einzelne Warnungen aktiviert und deaktiviert werden.
Aktivieren und Deaktivieren von Warnungen
Es gibt verschiedene Möglichkeiten zum Konfigurieren von Warnungen: Sie können sie mithilfe der Project Designer-konfigurieren, Sie können die /warnaserror und /nowarn Compileroptionen verwenden, oder Sie können die Projektdatei (vbproj
Datei) bearbeiten und die NoWarn
MSBuild-Eigenschaft verwenden. Informationen zur Verwendung der MSBuild-Eigenschaft finden Sie unter Unterdrücken bestimmter Warnungen für ein gesamtes Visual Basic-Projekt.
Die Project Designer Erfahrung unterscheidet sich je nachdem, ob Sie mit einem .NET Framework-Projekt oder einem .NET Core-Projekt (oder .NET 5 oder höher) arbeiten.
In .NET Core-Projekten (oder .NET 5 und höher) enthält der Abschnitt Kompilierung des Project Designer- eine Einstellung namens Warnungsschweregrad, mit der Sie alle Warnungen deaktivieren, alle Warnungen auf Fehler höherstufen können, oder Sie können jede Warnungskategorie separat steuern (Standardeinstellung). Die Einstellungen für die Warnungskategorie werden im selben Bereich des Project Designers angezeigt.
Aktivieren Sie in .NET Framework-Projekten auf der Registerkarte Kompilieren des Project Designer-das Kontrollkästchen Alle Warnungen deaktivieren, um alle Warnungen zu deaktivieren; wählen Sie die Alle Warnungen als Fehler behandeln, um alle Warnungen als Fehler zu behandeln. Einige Warnungen können in der angezeigten Tabelle je nach Bedarf als Fehler oder als Warnungen konfiguriert werden.
Auf der Registerkarte Kompilieren der Seite Project Designer können Sie Warnungen aktivieren und deaktivieren. Aktivieren Sie das Kontrollkästchen Alle Warnungen deaktivieren, um alle Warnungen zu deaktivieren. wählen Sie die Alle Warnungen als Fehler behandeln, um alle Warnungen als Fehler zu behandeln. Einige Warnungen können in der angezeigten Tabelle je nach Bedarf als Fehler oder als Warnungen konfiguriert werden.
Wenn Option Strict auf Off festgelegt ist, können Warnungen im Zusammenhang mit Option Strict nicht unabhängig voneinander behandelt werden. Wenn Option Strict auf Onfestgelegt ist, werden die zugehörigen Warnungen unabhängig vom Status als Fehler behandelt. Wenn Option Strict durch Angabe von /optionstrict:custom
im Befehlszeilencompiler auf Custom festgelegt ist, können Option Strict-Warnungen unabhängig voneinander aktiviert bzw. deaktiviert werden.
Die /warnaserror Befehlszeilenoption des Compilers kann auch verwendet werden, um anzugeben, ob Warnungen als Fehler behandelt werden. Sie können dieser Option eine durch Trennzeichen getrennte Liste hinzufügen, um anzugeben, welche Warnungen mit +oder -als Fehler oder Warnungen behandelt werden sollen. In der folgenden Tabelle sind die möglichen Optionen aufgeführt.
Befehlszeilenoption | Bedeutung |
---|---|
/warnaserror+ oder /warnaserror |
Behandeln aller Warnungen als Fehler |
/warnsaserror- |
Behandeln Sie Warnungen nicht als Fehler. Diese Einstellung ist die Standardeinstellung. |
/warnaserror+:<warning list > |
Behandeln Sie bestimmte Warnungen als Fehler, die anhand ihrer Fehler-ID-Nummer in einer durch Trennzeichen getrennten Liste r aufgeführt sind. |
/warnaserror-:<warning list> |
Behandeln Sie bestimmte Warnungen nicht als Fehler, aufgelistet durch ihre Fehler-ID-Nummer in einer durch Trennzeichen getrennten Liste. |
/nowarn |
Keine Warnungen melden. |
/nowarn:<warning list> |
Melden Sie keine angegebenen Warnungen, die anhand ihrer Fehler-ID-Nummer in einer durch Trennzeichen getrennten Liste aufgelistet sind. |
Die Warnungsliste enthält die Fehler-ID-Nummern der Warnungen, die als Fehler behandelt werden sollten, die mit den Befehlszeilenoptionen verwendet werden können, um bestimmte Warnungen zu aktivieren oder zu deaktivieren. Wenn die Warnliste eine ungültige Zahl enthält, wird ein Fehler gemeldet.
Beispiele
Diese Tabelle mit Beispielen für Befehlszeilenargumente beschreibt die Funktionsweise der einzelnen Argumente.
Argument | Beschreibung |
---|---|
vbc /warnaserror |
Gibt an, dass alle Warnungen als Fehler behandelt werden sollen. |
vbc /warnaserror:42024 |
Gibt an, dass warnung 42024 als Fehler behandelt werden soll. |
vbc /warnaserror:42024,42025 |
Gibt an, dass Warnungen von 42024 und 42025 als Fehler behandelt werden sollen. |
vbc /nowarn |
Gibt an, dass keine Warnungen gemeldet werden sollen. |
vbc /nowarn:42024 |
Gibt an, dass warnung 42024 nicht gemeldet werden soll. |
vbc /nowarn:42024,42025 |
Gibt an, dass Warnungen von 42024 und 42025 nicht gemeldet werden sollen. |
Arten von Warnungen
Es folgt eine Liste mit Warnungen, die Sie möglicherweise als Fehler behandeln möchten.
Implizite Konvertierungswarnung
Generiert für Instanzen der impliziten Konvertierung. Sie enthalten keine impliziten Konvertierungen von einem systeminternen numerischen Typ in eine Zeichenfolge, wenn sie den &
-Operator verwenden. Für neue Projekte standardmäßig deaktiviert.
ID: 42016
Aufruf spät gebundener Methoden und Warnungen zur Überladungsauflösung
Wird bei später Bindung generiert. Für neue Projekte standardmäßig deaktiviert.
ID: 42017
Warnungen zum Operandentyp „Object“
Wird generiert, wenn Operanden vom Typ Object
auftreten, die einen Fehler mit Option Strict Onerstellen würden. Für neue Projekte standardmäßig aktiviert.
ID: 42018 und 42019
Für Deklarationen ist eine As-Klausel erforderlich
Wird generiert, wenn eine Variablen-, Funktions- oder Eigenschaftendeklaration ohne As
-Klausel bei Verwendung von Option Strict On einen Fehler verursachen würde. Variablen, denen kein Typ zugewiesen ist, werden als Typ Object
angenommen. Für neue Projekte standardmäßig aktiviert.
ID: 42020 (Variablendeklaration), 42021 (Funktionsdeklaration) und 42022 (Eigenschaftsdeklaration).
Warnungen zu Ausnahmen bei möglichem NULL-Verweis
Wird generiert, wenn eine Variable verwendet wird, bevor sie einem Wert zugewiesen wurde. Für neue Projekte standardmäßig aktiviert.
ID: 42104, 42030
Warnung für nicht verwendete lokale Variable
Wird generiert, wenn eine lokale Variable deklariert, aber nie referenziert wird. Standardmäßig aktiviert.
ID: 42024
Warnung zum Zugriff auf freigegebenen Member durch Instanzvariable
Wird generiert, wenn beim Zugriff auf einen freigegebenen Member durch eine Instanz Nebeneffekte auftreten könnten oder wenn der Zugriff auf einen freigegebenen Member durch eine Instanzvariable nicht auf der rechten Seite eines Ausdrucks erfolgt oder als Parameter übergeben wird. Für neue Projekte standardmäßig aktiviert.
ID: 42025
Warnungen zum rekursiven Zugriff auf Operator oder Eigenschaft
Wird generiert, wenn der Code einer Routine denselben Operator oder dieselbe Eigenschaft verwendet, in der sie definiert ist. Für neue Projekte standardmäßig aktiviert.
ID: 42004 (Operator), 42026 (Eigenschaft)
Funktion oder Operator ohne Rückgabewertwarnung
Wird generiert, wenn die Funktion oder der Operator keinen Rückgabewert angegeben hat. Dies schließt das Weglassen einer Set
aus der impliziten lokalen Variablen mit demselben Namen wie die Funktion ein. Für neue Projekte standardmäßig aktiviert.
ID: 42105 (Funktion), 42016 (Operator)
Überladungsmodifikator, der in einer Modulwarnung verwendet wird
Wird erzeugt, wenn Overloads
in einem Module
verwendet wird. Für neue Projekte standardmäßig aktiviert.
ID: 42028
Warnung zu doppelten oder sich überschneidenden catch-Blöcken
Wird generiert, wenn ein Catch
-Block aufgrund seiner Beziehung zu anderen Catch
-Blöcken, die definiert wurden, nie erreicht wird. Für neue Projekte standardmäßig aktiviert.
ID: 42029, 42031