CA2221: Finalizer sollten geschützt sein
TypeName |
FinalizersShouldBeProtected |
CheckId |
CA2221 |
Kategorie (Category) |
Microsoft.Usage |
Unterbrechende Änderung |
Nicht unterbrechend |
Ursache
Ein öffentlicher Typ implementiert einen Finalizer, der keinen Familienzugriff (protected) angibt.
Regelbeschreibung
Finalizer müssen den Familienzugriffsmodifizierer verwenden.Diese Regel wird von den Compilern für C#, Visual Basic und Visual C++ durchgesetzt.
Behandeln von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, ändern Sie den Finalizer, sodass er den Familienzugriff ermöglicht.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnung dieser Regel.
Beispiel
Diese Regel darf in keiner höheren .NET-Sprache verletzt werden. Sie darf verletzt werden, wenn Sie in Microsoft Intermediate Language programmieren.
// =============== 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