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

Siehe auch

Weitere Ressourcen

Implementing Finalize and Dispose