CA2221: Finalizatory powinny być chronione
TypeName |
FinalizersShouldBeProtected |
CheckId |
CA2221 |
Kategoria |
Microsoft.Usage |
Zmiana kluczowa |
Niekluczowa |
Przyczyna
Typ publiczny implementuje finalizatory, które nie określają dostępu family (chronionego).
Opis reguły
Finalizatory należy użyć modyfikatora dostępu "family".Ta reguła jest wymuszane przez kompilatory C#, Visual Basic i Visual C++.
Jak naprawić naruszenia
Aby usunąć naruszenie tej reguły, należy zmienić finalizator na dostępny dla rodziny.
Kiedy pominąć ostrzeżenia
Nie należy pomijać ostrzeżenia dotyczącego tej reguły.
Przykład
Ta reguła nie może być naruszona w żadnym języku wysokiego poziomu .NET; może być naruszona w Microsoft Intermediate Language.
// =============== CLASS MEMBERS DECLARATION ===================
// note that class flags, 'extends' and 'implements' clauses
// are provided here for information only
.namespace UsageLibrary
{
.class public auto ansi beforefieldinit FinalizeMethodNotProtected
extends [mscorlib]System.Object
{
.method public hidebysig instance void
Finalize() cil managed
{
// Code size 1 (0x1)
.maxstack 0
IL_0000: ret
} // end of method FinalizeMethodNotProtected::Finalize
.method public hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
// Code size 7 (0x7)
.maxstack 1
IL_0000: ldarg.0
IL_0001: call instance void [mscorlib]System.Object::.ctor()
IL_0006: ret
} // end of method FinalizeMethodNotProtected::.ctor
} // end of class FinalizeMethodNotProtected
} // end of namespace