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
  1. Vytvořte textový soubor s názvem CodeMetricsConfig.txt.

  2. 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).

  3. V souboru projektu označte akci sestavení konfiguračního souboru jako AdditionalFiles. Příklad:

    <ItemGroup>
      <AdditionalFiles Include="CodeMetricsConfig.txt" />
    </ItemGroup>
    

Viz také