Udostępnij za pośrednictwem


CA1511: Użyj pomocnika throw ArgumentException

Właściwości Wartość
Identyfikator reguły CA1511
Tytuł Używanie pomocnika throw ArgumentException
Kategoria Łatwość konserwacji
Poprawka powodująca niezgodność lub niezgodność Niezgodność
Domyślnie włączone na platformie .NET 8 Jako sugestia

Przyczyna

Kod sprawdza, czy argument jest, czy ciąg jest null pusty, a następnie warunkowo zgłasza wartość ArgumentException.

Opis reguły

Sprawdzanie argumentów ma znaczący wpływ na rozmiar kodu i często dominuje w kodzie dla małych funkcji i zestawów właściwości. Te kontrole uniemożliwiają podkreślenie i powodują znaczne zanieczyszczenie pamięci podręcznej instrukcji. Metody pomocnika rzutu, takie jak ArgumentException.ThrowIfNullOrEmpty(String, String) , są prostsze i bardziej wydajne niż if bloki tworzące nowe wystąpienie wyjątku.

Przykład

Poniższy fragment kodu przedstawia naruszenie ca1511:

void M(string arg)
{
    if (string.IsNullOrEmpty(arg))
        throw new ArgumentException("", "arg");
}

Poniższy fragment kodu przedstawia poprawkę:

void M(string arg)
{
    ArgumentException.ThrowIfNullOrEmpty(arg);
}

Jak naprawić naruszenia

Zastąp if blok zgłaszający wyjątek wywołaniem metody ArgumentException.ThrowIfNullOrEmpty(String, String). Możesz też użyć menu żarówki, aby automatycznie naprawić kod.

Kiedy pomijać ostrzeżenia

Można bezpiecznie pominąć naruszenie tej reguły, jeśli nie martwisz się o konserwację kodu. Można również pominąć naruszenia, które są identyfikowane jako fałszywie dodatnie.

Pomijanie ostrzeżenia

Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

#pragma warning disable CA1511
// The code that's violating the rule is on this line.
#pragma warning restore CA1511

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

[*.{cs,vb}]
dotnet_diagnostic.CA1511.severity = none

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.