1
假设我正在C++/CLI中实现一些包装类Foo
。当然,如果我创建一个dtor(Foo::~Foo
),它将成为IDisposable
的实现。但是,如果我的IDisposable只是简单地释放内存(例如它只是执行free
或delete
),那么不应该完成这个操作在常规终结者(Foo::!Foo
)中,只要发生这种情况?我应该实施IDisposable以释放“非托管”内存吗?
我的意思是,我们确实不介意,只要它喜欢,为什么给过东西是基本上只是释放内存精细的控制是.NET释放内存的想法?
但是,你不要指望在与managed.NET对象释放相同的控制,那么为什么与非托管对象? 对于.NET程序,管理的对象可能是它的大部分分配的,你不要那些“只要你不需要他们的”自由。 – Ilya 2010-03-07 13:23:55