Compartir a través de


CA2221: Debe proteger los finalizadores

Nombre de tipo

FinalizersShouldBeProtected

Identificador de comprobación

CA2221

Categoría

Microsoft.Usage

Cambio problemático

No

Motivo

Un tipo público implementa un finalizador que no especifica el acceso de familia (protegido).

Descripción de la regla

Los finalizadores deben utilizar el modificador de acceso de familia.Los compiladores de C#, Visual Basic y C++ fuerzan esta regla.

Cómo corregir infracciones

Para corregir una infracción de esta regla, cambie el finalizador para que las familias sean accesibles.

Cuándo suprimir advertencias

No suprima las advertencias de esta regla.

Ejemplo

Esta regla no se puede infringir en cualquier lenguaje de .NET de alto nivel; se puede infringir si está escribiendo con 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

Vea también

Referencia

Implementing Finalize and Dispose