CA1505: Unikaj kodu niemożliwego w utrzymaniu

Właściwości Wartość
Identyfikator reguły CA1505
Tytuł Unikaj kodu trudnego w utrzymaniu
Kategoria Łatwość konserwacji
Poprawka łamiąca lub nienaruszająca Niezgodność
Domyślny próg 10
Domyślnie włączone na platformie .NET 10 Nie.
Zastosowane języki C# i Visual Basic

Przyczyna

Typ, metoda, pole, właściwość lub zdarzenie ma niską wartość indeksu konserwacji.

Opis reguły

Reguła zgłasza naruszenie, gdy indeks konserwacji typu, metody, pola, właściwości lub zdarzenia jest mniejszy niż 10. Można jednak skonfigurować próg.

Indeks konserwacji jest obliczany przy użyciu następujących metryk: wierszy kodu, woluminu programu i złożoności cyklatycznej. (Wolumin programowy to miara trudności w zrozumieniu typu lub metody opartej na liczbie operatorów i operandów w kodzie. Złożoność cyklatyczna to miara złożoności strukturalnej typu lub metody. Aby dowiedzieć się więcej na temat metryk kodu, zobacz Mierzenie złożoności i łatwość utrzymania kodu zarządzanego.

Indeks niskiej łatwości utrzymania wskazuje, że typ lub metoda prawdopodobnie jest trudna do utrzymania i byłaby dobrym kandydatem do przeprojektowania.

Jak naprawić naruszenia

Aby naprawić to naruszenie, przeprojektuj typ lub metodę i spróbuj podzielić go na mniejsze i bardziej ukierunkowane typy lub metody.

Kiedy pomijać ostrzeżenia

To ostrzeżenie można pominąć, gdy typu lub metody nie można podzielić lub gdy, pomimo dużego rozmiaru, uważane są one za możliwe do utrzymania.

Uwaga

Jeśli wszystkie następujące elementy mają zastosowanie, mogą pojawić się ostrzeżenia fałszywie dodatnie z tej reguły:

  • Używasz programu Visual Studio 2022 w wersji 17.5 lub nowszej ze starszą wersją zestawu .NET SDK, czyli platformą .NET 6 lub starszą.
  • Używasz analizatorów z zestawu .NET 6 SDK lub starszej wersji pakietów analizatora, takich jak Microsoft.CodeAnalysis.FxCopAnalyzers.

Wyniki fałszywie dodatnie są spowodowane zmianą powodującą niezgodność w kompilatorze języka C#. Rozważ użycie nowszego analizatora zawierającego poprawkę dla ostrzeżeń fałszywie dodatnich. Przeprowadź uaktualnienie do wersji Microsoft.CodeAnalysis.NetAnalyzers w wersji 7.0.0-preview1.22464.1 lub nowszej lub użyj analizatorów z zestawu .NET 7 SDK.

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 CA1505
// The code that's violating the rule is on this line.
#pragma warning restore CA1505

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

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

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.

Konfigurowanie progu

Można skonfigurować próg, przy którym ta reguła jest uruchamiana i jakiego rodzaju symbole mają być analizowane. Dozwolone rodzaje symboli to:

  • Assembly
  • Namespace
  • Type
  • Method
  • Field
  • Event
  • Property
  1. Utwórz plik tekstowy o nazwie CodeMetricsConfig.txt.

  2. Dodaj żądany próg do pliku tekstowego w następującym formacie:

    CA1505: 20
    

    W tym przykładzie reguła jest skonfigurowana do uruchomienia, gdy indeks konserwowalności typu, metody, pola, właściwości lub zdarzenia jest mniejszy niż 20.

    CA1505(Method): 5
    CA1505(Type): 15
    

    W tym przykładzie reguła jest skonfigurowana tak, aby uruchamiała się, gdy indeks zrównoważenia metody jest mniejszy niż 5 lub indeks zrównoważenia typu jest mniejszy niż 15. W przypadku tego pliku konfiguracji reguła będzie nadal flagować pola, właściwości i zdarzenia, których indeks konserwacji jest mniejszy niż domyślny próg (10).

  3. W pliku projektu oznacz akcję kompilacji pliku konfiguracji jako AdditionalFiles. Na przykład:

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

Zobacz też