我正在尝试在托管C++(.Net 2.0)中处理IDisposable对象(FileStream ^ fs)并收到错误
'Dispose' : is not a member of 'System::IO::FileStream'
它说我应该调用析构函数.会打电话
fs->~FileStream();
在FileStream对象上调用dispose方法?为什么我不能调用Dispose?
正确的模式是删除对象:
delete fs;
这将被转换为对Dispose()的调用
请参阅这篇文章,了解有关幕后内容的一些细节.这个成语的优点是它允许你写:
{ FileStream fs(...) ... }
并且正确调用Dispose方法...等同于C#中的using块.文件流对象仍在托管堆上分配.