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