Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果一个对象没有引用,它什么时候被释放?_C#_Sqldataadapter - Fatal编程技术网

C# 如果一个对象没有引用,它什么时候被释放?

C# 如果一个对象没有引用,它什么时候被释放?,c#,sqldataadapter,C#,Sqldataadapter,如果反复调用GetResults()方法,是否可能有多个实例,或者是否在其作用域结束时自行处理 public static DataTable GetResults() { DataTable dataTable; new SqlDataAdapter(sqlQuery, new SqlConnection(connString)).Fill(dataTable); return dataTable; } 处置对象是指处置对象。它与对象是否存储在变量中无关。使用Disp

如果反复调用GetResults()方法,是否可能有多个实例,或者是否在其作用域结束时自行处理

public static DataTable GetResults()
{
    DataTable dataTable;
    new SqlDataAdapter(sqlQuery, new SqlConnection(connString)).Fill(dataTable);
    return dataTable;
}

处置对象是指处置对象。它与对象是否存储在变量中无关。

使用Dispose策略时,它只是用于清理。即使在处理对象时,对象也可能仍然是“活动的”。只有GC选择删除对象


因此,在使用Sql连接时,最好使用Dispose策略关闭连接。

垃圾收集器将调用终结器,您可以自己调用
Dispose()
。由于没有对适配器的引用,因此在下次拾取垃圾时将收集该适配器。@jeroenvanevel GC可能会调用终结器,而不会调用终结器。如果确定性清理很重要,则需要显式地处理资源。@Servy:对,非常重要的区别。