CA1805: Zbytečně neicializovat
Vlastnost | Hodnota |
---|---|
ID pravidla | CA1805 |
Název | Nepoužívejte inicializaci zbytečně |
Kategorie | Výkon |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení v .NET 9 | No |
Příčina
Pole třídy je explicitně inicializováno na výchozí hodnotu typu daného pole.
Popis pravidla
Modul runtime .NET inicializuje všechna pole referenčních typů na výchozí hodnoty před spuštěním konstruktoru. Ve většině případů je explicitní inicializace pole na výchozí hodnotu v konstruktoru redundantní, přidání nákladů na údržbu a potenciálně snížení výkonu (například se zvýšenou velikostí sestavení) a explicitní inicializace se dá odebrat.
Jak opravit porušení
Ve většině případů je správnou opravou odstranění nepotřebné inicializace.
class C
{
// Violation
int _value1 = 0;
// Fixed
int _value1;
}
V některých případech může odstranění inicializace způsobit vydání následných upozornění CS0649 kvůli tomu, že pole zachová výchozí hodnotu navždy. V takových případech může být lepší oprava odstranit pole zcela nebo ho nahradit vlastností:
class C
{
// Violation
private static readonly int s_value = 0;
// Fixed
private static int Value => 0;
}
Kdy potlačit upozornění
Upozornění je vždy bezpečné potlačit, protože upozornění jednoduše zvýrazní potenciálně nepotřebný kód a práci, kterým se můžete vyhnout.
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 CA1805
// The code that's violating the rule is on this line.
#pragma warning restore CA1805
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.CA1805.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.