我有一个包含文件流的对象。文件流将在对象的生存期内打开。当对象没有更多引用时,我希望文件流关闭,但在此之前从来没有。如果在对象上调用Dispose(),则释放该文件,但该对象可能仍然具有引用。在此之后调用其他方法是不安全的,因为文件已经被释放了,所以我需要在每个方法的开头实现检查,以确保该文件仍然有效(浪费运行时间)。
看起来,使MUST ()私有可能解决了这个问题,但我同样理解,当对象没有更多引用时,可能不会立即调用析构函数--因此,基本上,我必须公开一个MUST()方法,以便调用者进行自己的清理。难道这不就是“智能”内存管理的目的吗?
https://stackoverflow.com/questions/33021768
复制相似问题