CA1513: Použití pomocné rutiny ObjectDisposedException

Vlastnost Hodnota
ID pravidla CA1513
Název Použití pomocné rutiny vyvolání objektu ObjectDisposedException
Kategorie Udržovatelnost
Oprava způsobující chybu nebo chybu způsobující chybu Nepřerušované
Povoleno ve výchozím nastavení v .NET 8 Jako návrh

Příčina

Kód zkontroluje, zda je objekt uvolněn a podmíněně vyvolá .ObjectDisposedException

Popis pravidla

Kontroly objektů mají významný vliv na velikost kódu a často dominují kódu pro malé funkce a setter vlastností. Tyto kontroly brání inliningu a způsobují značné znečištění mezipaměti instrukcemi. Pomocné metody, jako ThrowIf jsou jednodušší a efektivnější než if bloky, které vytváří novou instanci výjimky.

Příklad

Následující fragment kódu ukazuje porušení ca1513:

class C
{
    private bool _disposed = false;
    void M()
    {
        if (_disposed)
            throw new ObjectDisposedException(GetType().Name);
    }
}

Následující fragment kódu ukazuje opravu:

class C
{
    private bool _disposed = false;
    void M()
    {
        ObjectDisposedException.ThrowIf(_disposed, this);
    }
}

Jak opravit porušení

if Nahraďte blok, který vyvolá výjimku voláním ThrowIf. Nebo v sadě Visual Studio pomocí nabídky žárovky opravte kód automaticky.

Kdy potlačit upozornění

Pokud vás nezajímá udržovatelnost kódu, je bezpečné potlačit porušení tohoto pravidla. Je také v pořádku potlačit porušení, která jsou identifikována jako falešně pozitivní.

Potlačení upozornění

Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.

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

Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none konfiguračním souboru.

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

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.