CA1513: Użyj pomocnika objectDisposedException
Właściwości | Wartość |
---|---|
Identyfikator reguły | CA1513 |
Tytuł | Używanie pomocnika throw ObjectDisposedException |
Kategoria | Łatwość konserwacji |
Poprawka powodująca niezgodność lub niezgodność | Niezgodność |
Domyślnie włączone na platformie .NET 9 | Jako sugestia |
Przyczyna
Kod sprawdza, czy obiekt jest usuwany, a następnie warunkowo zgłasza obiekt ObjectDisposedException.
Opis reguły
Sprawdzanie obiektó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 ThrowIf , są prostsze i bardziej wydajne niż if
bloki tworzące nowe wystąpienie wyjątku.
Przykład
Poniższy fragment kodu przedstawia naruszenie ca1513:
class C
{
private bool _disposed = false;
void M()
{
if (_disposed)
throw new ObjectDisposedException(GetType().Name);
}
}
Poniższy fragment kodu przedstawia poprawkę:
class C
{
private bool _disposed = false;
void M()
{
ObjectDisposedException.ThrowIf(_disposed, this);
}
}
Jak naprawić naruszenia
Zastąp if
blok zgłaszający wyjątek wywołaniem metody ThrowIf. 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 CA1513
// The code that's violating the rule is on this line.
#pragma warning restore CA1513
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.CA1513.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.