Pregunta

Estoy tratando de deshacerme de un objeto IDisposable (FileStream ^ fs) en C ++ administrado (.Net 2.0) y obtengo el error

'Dispose' : is not a member of 'System::IO::FileStream'

Dice que debería invocar el destructor en su lugar. Will llamando

fs->~FileStream();

¿llama al método dispose en el objeto FileStream? ¿Por qué no puedo llamar a Dispose?

¿Fue útil?

Solución

El patrón correcto es simplemente eliminar el objeto:

delete fs;

Esto se traducirá en una llamada a Dispose ()

Consulte esta publicación para obtener algunos detalles de lo que es pasando debajo del capó. La ventaja de este idioma es que te permite escribir:

{
  FileStream fs(...)
  ...
}

Y haga que el método Dispose se llame correctamente ... equivalente a un bloque using en C #. El objeto de secuencia de archivos todavía está asignado en el montón administrado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top