C#中的Dispose()是否等效于C中的free()
作者:互联网
C#中的.Dispose()是否等效于C中的free()?
获得用户选择的文件名后,是否应该.Dispose()一个OpenFileDialog?
在我的应用程序中,用户可以随意选择/打开一个文件,那么将openFileDialog实例保留在内存中而不进行处理就没有任何意义了吗?还是由于.NET框架的特定体系结构,这是不好的做法吗?
解决方法:
您应该处理任何实现IDisposable的东西.通常,这意味着将上下文包装在using语句中,即:
using (var myInstanceOfSomeClass = new SomeClassImplementingIDisposable())
{
// do stuff
}
这是调用.Dispose()的try / finally块的C#简写.
就其与free()的关系而言,我认为它们是不同的.我的C语言很生锈,但是.Dispose()是更通用的实现,可以清除非托管资源,例如文件句柄,数据库连接,内存分配等..Dispose()对任何给定类的确切作用取决于实现由开发商.
标签:idisposable,c 来源: https://codeday.me/bug/20191030/1966447.html