我看到很多的代碼,其中所述對象被設置爲空的finally
部分或在方法結束時,例如:爲什麼使用後應該將對象設置爲null是否有原因?
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void buildUpdates(int batchId, string mkt)
{
aplUpdate oDU;
DataSet ds;
DataTable dtTbls;
DataTable dtData;
List<dbVer> resp;
try
{
oDU = new WEB_APL.APL.aplUpdate(MyWeb.Properties.Settings.Default.DBCon);
ds = new DataSet();
ds.DataSetName = batchId.ToString();
dtTbls = oDU.getDetails(true);
resp=GetDBVersions();
foreach (DataRow dr in dtTbls.Rows)
{
.....
}
ds.WriteXml(HttpContext.Current.Server.MapPath("~") + "\\" + ds.DataSetName + ".xml", XmlWriteMode.WriteSchema);
}
catch (Exception ex)
{
throw ex;
}
finally
{
oDU = null;
ds=null;
rest=null;
dtTbls=null;
dtData=null;
}
}
我認爲這是unnessesary因爲過期的對象將被自動處理.NET garbage collector
。
是否有理由重置爲null
?
[嗎?您需要處置的對象,並將它們設置爲null(HTTP的可能重複://計算器。com/questions/2926869/do-you-need-to-dispose-of-objects-and-set-them-to-null)或[在.NET中使用後將對象設置爲Null/Nothing](http:// stackoverflow .com/questions/2785/setting-objects-null-null-nothing-in-net) –