CA1852: Zapečetění interních typů
Vlastnost | Hodnota |
---|---|
ID pravidla | CA1852 |
Název | Zapečetění vnitřních typů |
Kategorie | Výkon |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Zavedená verze | .NET 7 |
Povoleno ve výchozím nastavení v .NET 9 | No |
Příčina
Typ, který není přístupný mimo sestavení a neobsahuje žádné podtypy v rámci jeho obsahujícího sestavení, není označen sealed
(NotInheritable
v jazyce Visual Basic).
Popis pravidla
Pokud typ není přístupný mimo své sestavení a neobsahuje žádné podtypy v jeho obsahujícím sestavení, může být bezpečně zapečetěn. Těsnicí typy mohou zvýšit výkon. Další informace naleznete v tématu Návrh analyzátoru: Zapečetění interních/soukromých typů].
Pokud použijete System.Runtime.CompilerServices.InternalsVisibleToAttribute u analyzovaného sestavení, toto pravidlo neoznačí typy, které nejsou ve výchozím nastavení označené jako sealed
výchozí, protože pole může používat známé sestavení. Chcete-li přesto analyzovat sestavení, přečtěte si téma Konfigurace kódu pro analýzu.
Jak opravit porušení
Označte typ jako sealed
(NotInheritable
v jazyce Visual Basic).
Příklad
Následující fragment kódu ukazuje porušení ca1852:
internal class C
{ }
Class C
End Class
Následující fragment kódu opraví porušení zásad:
internal sealed class C
{ }
NotInheritable Class C
End Class
Kdy potlačit upozornění
Pokud výkon není problém, je bezpečné potlačit upozornění.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable CA1852
// The code that's violating the rule is on this line.
#pragma warning restore CA1852
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none
konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.CA1852.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.
Konfigurace kódu pro analýzu
Pomocí následující možnosti nakonfigurujte, ve kterých částech základu kódu se má toto pravidlo spouštět.
Tuto možnost můžete nakonfigurovat jenom pro toto pravidlo, pro všechna pravidla, která platí, nebo pro všechna pravidla v této kategorii (Výkon), na která platí. Další informace naleznete v tématu Možnosti konfigurace pravidla kvality kódu.
Ignorovat atribut InternalsVisibleTo
Ve výchozím nastavení je toto pravidlo zakázáno, pokud analyzované sestavení používá InternalsVisibleToAttribute k zveřejnění svých vnitřních symbolů. Můžete nastavit možnost ignore_internalsvisibleto a změnit konfiguraci. Chcete-li určit, že pravidlo by se mělo spustit i v případě, že je sestavení označeno InternalsVisibleToAttribute, přidejte do souboru .editorconfig v projektu následující dvojici klíč-hodnota:
dotnet_code_quality.CAXXXX.ignore_internalsvisibleto = true
Poznámka
Nahraďte XXXX
část CAXXXX
ID příslušného pravidla.
Tato možnost je dostupná od verze .NET 8.