Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
| Eigenschaft | Wert |
|---|---|
| Regel-ID | CA1513 |
| Titel | Verwenden Sie ObjectDisposedException throw-Hilfsprogramm |
| Kategorie | Wartbarkeit |
| Fix führt zu Unterbrechungen oder bleibt funktionsfähig | Nicht unterbrechend |
| Standardmäßig in .NET 10 aktiviert | Als Vorschlag |
| Anwendbare Sprachen | C# und Visual Basic |
Ursache
Code überprüft, ob ein Objekt verworfen wird, und löst dann bedingt eine ObjectDisposedException aus.
Regelbeschreibung
Objektüberprüfungen wirken sich erheblich auf die Codegröße aus und beherrschen häufig den Code für kleine Funktionen und Eigenschaftssetter. Diese Überprüfungen verhindern das Inlining und verursachen eine erhebliche Verunreinigung des Befehlszwischenspeichers. Throw-Hilfsmethoden wie ThrowIf sind einfacher und effizienter als if-Blöcke, die eine neue Ausnahmeinstanz erstellen.
Beispiel
Der folgende Codeschnipsel zeigt einen Verstoß gegen CA1513:
class C
{
private bool _disposed = false;
void M()
{
if (_disposed)
throw new ObjectDisposedException(GetType().Name);
}
}
Der folgende Codeausschnitt zeigt die Korrektur:
class C
{
private bool _disposed = false;
void M()
{
ObjectDisposedException.ThrowIf(_disposed, this);
}
}
So beheben Sie Verstöße
Ersetzen Sie den if-Block, der die Ausnahme auslöst, durch einen Aufruf von ThrowIf. Oder verwenden Sie in Visual Studio das Glühbirnenmenü, um Ihren Code automatisch zu korrigieren.
Wann sollten Warnungen unterdrückt werden?
Es ist sicher, einen Verstoß gegen diese Regel zu unterdrücken, wenn Sie sich keine Gedanken über die Wartbarkeit Ihres Codes machen. Es ist auch in Ordnung, Verstöße zu unterdrücken, die als falsche Positive identifiziert werden.
Unterdrücken einer Warnung
Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.
#pragma warning disable CA1513
// The code that's violating the rule is on this line.
#pragma warning restore CA1513
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad auf none in der Konfigurationsdatei fest.
[*.{cs,vb}]
dotnet_diagnostic.CA1513.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.