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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour