CA2221: Os finalizadores devem ser protegidos.
TypeName |
FinalizersShouldBeProtected |
CheckId |
CA2221 |
<strong>Categoria</strong> |
Microsoft.Usage |
Alteração significativa |
Não separável |
Causa
Um tipo público implementa um finalizador que especificam o acesso por família (protegido).
Descrição da regra
Os finalizadores devem usar o modificador de acesso da família. Essa regra é imposta pelos compiladores C#, Visual Basic e Visual C++.
Como corrigir violações
Para corrigir uma violação desta regra, altere o finalizador para ser acessível para a família.
Quando suprimir avisos
Não suprimir um aviso da regra.
Exemplo
Esta regra não pode ser violada em qualquer um alto nível.NET language; podem ser violada se você estiver escrevendo Microsoft Intermediate Language.
// =============== 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 também
Referência
Implementando finalizar e Dispose para limpeza de recursos não gerenciados