Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
| 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.