Erro do compilador C3420
'finalizer': um finalizador não pode ser virtual
Um finalizador só pode ser chamado não virtualmente do respectivo tipo delimitador. Portanto, é um erro declarar um finalizador virtual.
Para obter mais informações, confira Destruidores e finalizadores em Como definir e consumir classes e structs (C++/CLI).
Exemplo
O seguinte exemplo gera o erro C3420.
// C3420.cpp
// compile with: /clr /c
ref class R {
virtual !R() {} // C3420
};