Os finalizadores devem telefonar finalizador da classe base
TypeName |
FinalizersShouldCallBaseClassFinalizer |
CheckId |
CA2220 |
Category (Categoria) |
Microsoft.uso |
Quebrando alterar |
Não separável |
Causa
Um tipo que substitui Object.Finalize não telefonar o Finalize método na sua classe base.
Descrição da regra
Finalização deve ser propagada a hierarquia de herança.Para garantir isso, tipos devem chamar sua classe base Finalize método de dentro do seu próprio Finalize método. O compilador translation from VPE for Csharp adiciona automaticamente a telefonar para o finalizador da classe base.
Como corrigir violações
Para corrigir uma violação dessa regra, telefonar Finalize método a partir do seu Finalize método.
Quando suprimir avisos
Não suprimir um aviso da regra.Alguns compiladores que visam common linguagem tempo de execução inserir uma telefonar a finalizador do tipo de base em Microsoft intermediate linguagem (MSIL).Se um aviso da regra é reportado, o compilador não insere a telefonar e você deve adicioná-lo ao seu código.
Exemplo
O exemplo do Visual Basic a seguir mostra um tipo de TypeB que chama corretamente o Finalize método na sua classe base.
Imports System
Namespace UsageLibrary
Public Class TypeB
Inherits TypeA
Protected Overrides Sub Finalize()
Try
Dispose(False)
Finally
MyBase.Finalize()
End Try
End Sub
End Class
End Namespace
Consulte também
Referência
Implementando Finalize e Dispose para Apagar up recursos não gerenciados