CA1852: Belső típusok lezárása

Tulajdonság Érték
Szabályazonosító CA1852
Cím Belső típusok lezárása (megakadályozza a további öröklődést)
Kategória Teljesítmény
A javítás romboló vagy nem romboló Nem törhető
Bevezetett verzió .NET 7
Alapértelmezés szerint engedélyezve a .NET 10-ben Nem
Alkalmazandó nyelvek C# és Visual Basic

Ok

Az a típus, amely nem érhető el a szerelvényen kívül, és nem tartalmaz altípusokat a szerelvényen belül, nincs megjelölve sealed (NotInheritable a Visual Basicben).

Szabály leírása

Ha egy típus nem érhető el az összeállításon kívül, és nincsenek belső altípusai, akkor biztonságosan lezárható. A tömítéstípusok javíthatják a teljesítményt. További információért lásd: Elemző javaslat: Belső/privát típusok lezárása].

Ha alkalmazza a System.Runtime.CompilerServices.InternalsVisibleToAttribute az elemzett szerelvényre, ez a szabály alapértelmezés szerint nem jelöli meg azokat a típusokat, amelyek nincsenek sealed-ként jelölve, mert a mezőt egy barát szerelvény is használhatja. A szerelvény elemzéséhez, ha mindenképpen el szeretné végezni, lásd: Kód konfigurálása elemzéshez.

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

Jelölje meg a típust sealed (NotInheritable a Visual Basicben).

Példa

A következő kódrészlet a CA1852 megsértése esetén jelenik meg:

internal class C
{ }
Class C
End Class

A következő kódrészlet kijavítja a szabálysértést:

internal sealed class C
{ }
NotInheritable Class C
End Class

Mikor kell letiltani a figyelmeztetéseket?

Nyugodtan el lehet tiltani a figyelmeztetést, ha a teljesítmény nem okoz gondot.

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

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.CA1852.severity = none

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

Kód konfigurálása elemzéshez

A következő beállítással konfigurálhatja, hogy a kódbázis mely részein futtassa ezt a szabályt.

Ezt a beállítást konfigurálhatja csak erre a szabályra, az összes szabályra, vagy az ebben a kategóriában (Teljesítmény) érvényes összes szabályra. További információ: Kódminőségi szabály konfigurációs beállításai.

InternalsVisibleTo attribútum figyelmen kívül hagyása

Ez a szabály alapértelmezés szerint le van tiltva, ha az elemzett szerelvény a belső szimbólumok megjelenítésére használja InternalsVisibleToAttribute . Beállíthatja a ignore_internalsvisibleto beállítást a konfiguráció módosításához. Ha meg szeretné adni, hogy a szabály akkor is fusson, ha a szerelvény meg van jelölve InternalsVisibleToAttribute, adja hozzá a következő kulcs-érték párot a projekt egyik .editorconfig fájljához:

dotnet_code_quality.CAXXXX.ignore_internalsvisibleto = true

Jegyzet

Cserélje le a XXXXCAXXXX részét a vonatkozó szabály azonosítójára.

Ez a beállítás a .NET 8-tól érhető el.