CA1505: Vyhněte se neudržovatelnému kódu
Vlastnost | Hodnota |
---|---|
ID pravidla | CA1505 |
Název | Vyhněte se neudržovatelnému kódu |
Kategorie | Udržovatelnost |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Výchozí prahová hodnota | 10 |
Povoleno ve výchozím nastavení v .NET 8 | No |
Příčina
Typ, metoda, pole, vlastnost nebo událost má nízkou hodnotu indexu udržovatelnosti.
Popis pravidla
Pravidlo hlásí porušení, pokud index udržovatelnosti typu, metody, pole, vlastnosti nebo události je menší než 10. Prahovou hodnotu ale můžete nakonfigurovat.
Index udržovatelnosti se počítá pomocí následujících metrik: řádky kódu, svazku programu a cyklomaticické složitosti. (Objem programu je míra složitosti pochopení typu nebo metody založené na počtu operátorů a operandů v kódu. Cyklomaticová složitost je měřítkem strukturální složitosti typu nebo metody. Další informace o metrikách kódu s mírou složitosti a udržovatelnosti spravovaného kódu.
Index s nízkou udržovatelností značí, že typ nebo metoda je pravděpodobně obtížné udržovat a byl by vhodným kandidátem na změnu návrhu.
Jak opravit porušení
Chcete-li toto porušení vyřešit, přepracujte typ nebo metodu a pokuste se ho rozdělit na menší a více zaměřené typy nebo metody.
Kdy potlačit upozornění
Toto upozornění můžete potlačit, pokud typ nebo metodu nelze rozdělit nebo je považován za udržovatelný i přes jeho velkou velikost.
Poznámka:
Falešně pozitivní upozornění z tohoto pravidla se můžou zobrazit, pokud platí všechny tyto skutečnosti:
- Používáte Sadu Visual Studio 2022 verze 17.5 nebo novější se starší verzí sady .NET SDK, tj. .NET 6 nebo starší.
- Používáte analyzátory ze sady .NET 6 SDK nebo starší verze balíčků analyzátoru, například Microsoft.CodeAnalysis.FxCopAnalyzers.
Falešně pozitivní výsledky jsou způsobeny zásadní změnou kompilátoru jazyka C#. Zvažte použití novějšího analyzátoru, který obsahuje opravu falešně pozitivních upozornění. Upgradujte na Microsoft.CodeAnalysis.NetAnalyzers verze 7.0.0-preview1.22464.1 nebo novější nebo použijte analyzátory ze sady .NET 7 SDK.
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 CA1505
// The code that's violating the rule is on this line.
#pragma warning restore CA1505
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.CA1505.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.
Konfigurace prahové hodnoty
Můžete nakonfigurovat prahovou hodnotu, při které se toto pravidlo aktivuje, a druhy symbolů, které se mají analyzovat. Povolené druhy symbolů jsou:
Assembly
Namespace
Type
Method
Field
Event
Property
Vytvořte textový soubor s názvem CodeMetricsConfig.txt.
Do textového souboru přidejte požadovanou prahovou hodnotu v následujícím formátu:
CA1505: 20
V tomto příkladu je pravidlo nakonfigurováno tak, aby se aktivovalo, když index udržovatelnosti typu, metody, pole, vlastnosti nebo události je menší než 20.
CA1505(Method): 5 CA1505(Type): 15
V tomto příkladu je pravidlo nakonfigurováno tak, aby se aktivovalo, pokud je index udržovatelnosti metody menší než 5 nebo index udržovatelnosti typu je menší než 15. V tomto konfiguračním souboru bude pravidlo dál označit pole, vlastnosti a události, jejichž index udržovatelnosti je menší než výchozí prahová hodnota (10).
V souboru projektu označte akci sestavení konfiguračního souboru jako AdditionalFiles. Příklad:
<ItemGroup> <AdditionalFiles Include="CodeMetricsConfig.txt" /> </ItemGroup>