Megosztás a következőn keresztül:


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

Tulajdonság Érték
Szabályazonosító CA1852
Cím Belső típusok lezárása
Kategória Teljesítmény
A javítás kompatibilitástörő vagy nem törik Nem törés
Bevezetett verzió .NET 7
Alapértelmezés szerint engedélyezve a .NET 8-ban Nem

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 a szerelvényen kívül, és nem tartalmaz altípusokat a szerelvényen belül, biztonságosan lezárható. A tömítéstípusok javíthatják a teljesítményt.

Ha az elemzett szerelvényre vonatkozik System.Runtime.CompilerServices.InternalsVisibleToAttribute , ez a szabály nem jelöli meg a nem alapértelmezettként sealed megjelölt típusokat, mert egy ismerős szerelvény használhatja a mezőt. A szerelvény elemzéséhez 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 . 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

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