CA2221: os finalizadores devem ser protegidos
TypeName |
FinalizersShouldBeProtected |
CheckId |
CA2221 |
Categoria |
Microsoft.Usage |
Alteração Significativa |
Sem Quebra |
Causa
Um tipo público implementa um finalizador que não especifica o acesso de família (sombreada).
Descrição da Regra
Finalizers deve usar o modificador de acesso de família.Esta regra é imposta pelos compiladores C#, do Visual Basic e Visual C++.
Como Corrigir Violações
Para corrigir uma violação desta regra, altere o finalizador para ser família- acessível.
Quando Suprimir Alertas
Não elimine um alerta desta regra.
Exemplo
Esta regra não pode ser violada em qualquer linguagem de alto nível .NET; pode ser violada se você estiver escrevendo a Microsoft a linguagem intermediária.
// =============== 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