Share via


CA1505: A nem elérhetetlen kód elkerülése

Tulajdonság Érték
Szabályazonosító CA1505
Cím A nem elérhetetlen kód elkerülése
Kategória Fenntarthatóság
A javítás kompatibilitástörő vagy nem törik Nem törés
Alapértelmezett küszöbérték 10
Alapértelmezés szerint engedélyezve a .NET 8-ban Nem

Ok

Egy típus, metódus, mező, tulajdonság vagy esemény alacsony karbantarthatósági index értékkel rendelkezik.

Szabály leírása

A szabály szabálysértést jelez, ha egy típus, metódus, mező, tulajdonság vagy esemény karbantarthatósági indexe 10-nél kisebb. A küszöbértéket azonban konfigurálhatja.

A karbantarthatósági index kiszámítása a következő metrikák használatával történik: kódsorok, programkötet és ciklonalapú összetettség. (A programkötet a kódban szereplő operátorok és operandusok számán alapuló típus vagy metódus megértésének nehézségét méri. A ciklonmatikus összetettség a típus vagy módszer szerkezeti összetettségének mértéke. A kódmetrikákról a felügyelt kód összetettségének és karbantarthatóságának mérése című témakörben olvashat bővebben.

Az alacsony karbantarthatósági index azt jelzi, hogy egy típust vagy módszert valószínűleg nehéz fenntartani, és jó választás lenne az újratervezésre.

Szabálysértések kijavítása

A szabálysértés kijavításához tervezzen újra a típust vagy metódust, és próbálja meg kisebb és koncentráltabb típusokra vagy metódusokra felosztani.

Mikor kell letiltani a figyelmeztetéseket?

Ezt a figyelmeztetést akkor tilthatja le, ha a típus vagy metódus nem osztható fel, vagy nagy mérete ellenére karbantarthatónak tekinthető.

Megjegyzés:

Ha az alábbiak mindegyike érvényes, a szabály tévesen pozitív figyelmeztetéseket jeleníthet meg:

  • A Visual Studio 2022 17.5-ös vagy újabb verzióját használja a .NET SDK egy régebbi verziójával, vagyis a .NET 6-os vagy korábbi verziójával.
  • A .NET 6 SDK-ból származó elemzőket vagy az elemzőcsomagok egy régebbi verzióját használja, például a Microsoft.CodeAnalysis.FxCopAnalyzerst.

A hamis pozitív értékek a C#-fordító kompatibilitástörő változásának köszönhetők. Fontolja meg egy újabb elemző használatát, amely tartalmazza a hamis pozitív figyelmeztetések javítását. Frissítsen a Microsoft.CodeAnalysis.NetAnalyzers 7.0.0-preview1.22464.1-es vagy újabb verziójára, vagy használja a .NET 7 SDK elemzőit.

Figyelmeztetés mellőzése

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.

#pragma warning disable CA1505
// The code that's violating the rule is on this line.
#pragma warning restore CA1505

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.

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

További információ: Kódelemzési figyelmeztetések letiltása.

Küszöbérték konfigurálása

Konfigurálhatja azt a küszöbértéket, amelynél ez a szabály aktiválódik, és az elemezendő szimbólumok típusait. A megengedett szimbólumtípusok a következők:

  • Assembly
  • Namespace
  • Type
  • Method
  • Field
  • Event
  • Property
  1. Hozzon létre egy CodeMetricsConfig.txt nevű szövegfájlt.

  2. Adja hozzá a kívánt küszöbértéket a szövegfájlhoz a következő formátumban:

    CA1505: 20
    

    Ebben a példában a szabály úgy van konfigurálva, hogy aktiválódjon, ha egy típus, metódus, mező, tulajdonság vagy esemény karbantarthatósági indexe kisebb, mint 20.

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

    Ebben a példában a szabály úgy van konfigurálva, hogy aktiválódjon, ha egy metódus karbantarthatósági indexe kisebb 5-nél, vagy egy típus karbantarthatósági indexe kisebb, mint 15. Ezzel a konfigurációs fájllal a szabály továbbra is megjelöli azokat a mezőket, tulajdonságokat és eseményeket, amelyek karbantarthatósági indexe kisebb az alapértelmezett küszöbértéknél (10).

  3. A projektfájlban jelölje meg a konfigurációs fájl buildelési műveletét AdditionalFilesként. Például:

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

Kapcsolódó információk