Freigeben über


CA1510: Verwenden Sie ArgumentNullException throw-Hilfsprogramm

Eigenschaft Wert
Regel-ID CA1510
Titel Verwenden des ArgumentNullException-Throw-Hilfsprogramms
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 Argument null ist, und löst dann abhängig davon eine ArgumentNullException aus.

Regelbeschreibung

Argumentprü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 ArgumentNullException.ThrowIfNull sind einfacher und effizienter als if-Blöcke, die eine neue Ausnahmeinstanz erstellen.

Beispiel

Das folgende Codeschnipsel zeigt einen Verstoß gegen CA1510:

void M(string arg)
{
    if (arg is null)
        throw new ArgumentNullException(nameof(arg));
}

Das folgende Codeschnipsel zeigt die Lösung:

void M(string arg)
{
    ArgumentNullException.ThrowIfNull(arg);
}

So beheben Sie Verstöße

Ersetzen Sie den if-Block, der die Ausnahme auslöst, durch einen Aufruf von ArgumentNullException.ThrowIfNull. 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 CA1510
// The code that's violating the rule is on this line.
#pragma warning restore CA1510

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.CA1510.severity = none

Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.