Os finalizadores devem ser protegidos
TypeName |
FinalizersShouldBeProtected |
CheckId |
CA2221 |
Category (Categoria) |
Microsoft.uso |
Quebrando alterar |
Não separável |
Causa
Um tipo público implementa um finalizador não especifica a família de acesso (protegido).
Descrição da regra
Finalizadores devem usar o modificador de acesso da família.Essa regra é imposta pelos compiladores translation from VPE for Csharp, Visual Basic e Visual C++.
Como corrigir violações
Para corrigir uma violação dessa regra, altere o finalizador família acessíveis.
Quando suprimir avisos
Não suprimir um aviso da regra.
Exemplo
Esta regra não pode ser violada em qualquer linguagem .NET alto nível, ser violada se 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 Finalize e Dispose para Apagar up recursos não gerenciados