c# 中的 base:Finalize() 和Dispose() 已经close() 这个三个方法的区别

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 03:36:19
c# 中的 base:Finalize() 和Dispose() 已经close() 这个三个方法的区别

c# 中的 base:Finalize() 和Dispose() 已经close() 这个三个方法的区别
c# 中的 base:Finalize() 和Dispose() 已经close() 这个三个方法的区别

c# 中的 base:Finalize() 和Dispose() 已经close() 这个三个方法的区别
Finalize 是 Visual Basic 中的方法,在 C# 中没有这个关键词,而是使用析构函数.
Finalize 和 Dispose 都是释放资源,Finalize 隐式释放资源,Dispose 显式释放资源.Finalize 是对象不可访问后自动被调用的,Dispose 是类使用者调用的.
Close 这个方法在不同的类中有不同的含义,并没有任何规定要求 Close 具有特殊的含义,也就是说 Close 并不一定要释放资源,您也可以让 Close 方法表示“关门”.
不过,由于 Close 有“关”的意思,通常也把 Close 拿来释放资源,这也是允许的.比如文件操作中,用 Close 释放对象似乎比 Dispose 含义更准确,于是在设计类时,可以将 Close 设为 public,将 Dispose 设为 protected,然后由 Close 调用 Dispose.
Close 和 Dispose 同时存在的情况下(均为 public),Close 并不表示释放资源,因为通常情况下,类设计者不应该使用两个 public 方法来释放相同的资源.