CA2221: Los finalizadores deben estar protegidos
Elemento | Valor |
---|---|
RuleId | CA2221 |
Category | Microsoft.Usage |
Cambio importante | Poco problemático |
Causa
Un tipo público implementa un finalizador que no especifica el acceso de la familia (protegida).
Nota
Esta regla está en desuso. Para más información, consulte Reglas en desuso.
Descripción de la regla
Los finalizadores deben utilizar el modificador de acceso de familia. Los compiladores de C#, Visual Basic y C++ aplican esta regla.
Cómo corregir infracciones
Para corregir una infracción de esta regla, cambie el finalizador a fin de que sea accesible para la familia.
Cuándo suprimir las advertencias
No suprima las advertencias de esta regla.
Ejemplo
Esta regla no se puede infringir en ningún lenguaje general de .NET; se puede infringir si está escribiendo lenguaje intermedio de 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
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de