掌握C#中的资源管理,Finalize
和Dispose
>Finalize
>
Dispose
有效的资源管理对于C#开发至关重要。本文阐明了
方法的角色,指导您进行适当的实现。>
了解最终器 ~ClassName()
的需求
)对于处理非托管资源至关重要。 但是,即使仅管理托管资源的课程也可能需要最终确定器,如果这些托管资源内部与不受管理的资源进行交互。仔细考虑是关键。>
托管与未管理的资源决定包括最终制度的呈现您的班级是直接还是间接利用非托管资源的决定。 与垃圾收集器(GC)管理的资源(包括文件手柄,数据库连接和网络插座)不同。 他们的存在强烈表明需要最终制度。>
IDisposable
IDisposable
即使没有直接不管理的资源使用量,实施using
>接口也提供了一种有价值的资源清理机制。 这允许客户使用IDisposable
>语句,以确保适当的处置。 但是,仅
> 说明性示例
Dispose
示例代码(简短省略)演示了一个无直接不受管理资源使用的类。 因此,最终制度是不必要的。
>
Dispose
>利用方法
Dispose
using
using
可以由客户端明确调用或通过
块中显示自动调用。
间接非管理资源用法
WebClient
班可能会通过其依赖性间接使用不管理的资源。尽管IDisposable
(例如)实现了SafeHandle
,这意味着潜在的不受管理的资源使用情况,但这并不总是很明显。 内部不受管理的资源管理的使用和类似类的使用不会自动授权最终确定。
最佳实践摘要
用于与非管理资源互动的课程:IDisposable
模式。Dispose
以上是我什么时候应该使用c#'s'最终化”和' dispose”方法?的详细内容。更多信息请关注PHP中文网其他相关文章!