在返回之前,我想要销毁sda
如何使用Dispose销毁对象 - 在类dbConnect?
中 public class dbConnect
{
// othee code
public DataTable SetQuery(string constr, DataTable dt, string sSql)
{
using (MySqlConnection con = new MySqlConnection(constr))
{
//sda = null
using (MySqlDataAdapter sda = new MySqlDataAdapter())
{
try
{
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(dt);
}
finally
{
if (sda != null)
sda.Dispose();
//why the sda is not = null ?
}
return dt;
}
}
}
销毁对象(不是类)的正确程序是什么?
答案 0 :(得分:3)
由于您使用了using
sda
语句,因此一旦您不再需要它,就会调用Dispose。
有关详细信息,请查看here。
答案 1 :(得分:3)
Dispose()
并不意味着您的变量将变为null
,它就是{\ n}
你选择哪个变量应该停止引用的人
某事(所以你必须将它设置为null
)。Dispose()
时,您不需要致电using
,
最后会自动调用它(参见:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-statement)。