CA2221 : Les finaliseurs doivent être protégés

Élément Valeur
ID de la règle CA2221
Category Microsoft.Usage
Modification avec rupture Sans rupture

Cause

Un type public implémente un finaliseur qui ne spécifie pas l’accès famille (protégé).

Notes

Cette règle est déconseillée. Pour plus d’informations, consultez Règles dépréciées.

Description de la règle

Les finaliseurs doivent utiliser le modificateur d’accès family. Cette règle est appliquée par les compilateurs C#, Visual Basic et C++.

Comment corriger les violations

Pour corriger une violation de cette règle, modifiez le finaliseur pour qu’il soit accessible à la famille.

Quand supprimer les avertissements

Ne supprimez aucun avertissement de cette règle.

Exemple

Cette règle ne peut pas être violée dans n’importe quel langage .NET de haut niveau ; elle peut être violée si vous écrivez du langage intermédiaire Microsoft.

// =============== 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

Voir aussi