编程语言
首页 > 编程语言> > C#中的Dispose()是否等效于C中的free()

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