【发布时间】:2019-03-15 08:24:58
【问题描述】:
考虑以下示例。
public void SomeMethod(){
using(var sqlConnection= new SQLConnection()){
//some code here
}
}
在上面的例子中, using 块之外的 sqlConnection 将被释放并收集垃圾
public void SomeMethod(){
var sqlConnection = new SQLConnection(){
}
}
在本例中,sqlConnection 对象将在SomeMethod() 执行后被垃圾回收。
这里的问题是,在这种情况下是否真的有必要使用using() 范围,因为我可以在执行结束时收集对象垃圾。有人可以在这里分享您的想法吗?
【问题讨论】:
-
只是观察一下,
sqlConnection将在方法执行后在某个时候被垃圾收集。using语句确保该对象的Dispose方法将被确定性地调用,而不是等待 GC 执行来处理和收集它。 -
object will be garbage collected after之后与紧接着不同。从技术上讲,我出生后就死了。 但过了多久?
标签: c# scope garbage-collection using