我已經在範圍的末尾使用調用Dispose方法的塊聲明瞭datatable。Datatable裏面使用?
using (DataTable dt = Admin_User_Functions.Admin_KitItems_GetItems())
{
...
}
但在反射器,數據表犯規作用似乎有Dispose
功能
這是怎麼回事?
我已經在範圍的末尾使用調用Dispose方法的塊聲明瞭datatable。Datatable裏面使用?
using (DataTable dt = Admin_User_Functions.Admin_KitItems_GetItems())
{
...
}
但在反射器,數據表犯規作用似乎有Dispose
功能
這是怎麼回事?
DataTable
繼承自MarshalByValueComponent
實現了IDisposable
接口的類(見下文),C#允許爲派生類的實例調用基類public方法。
public class DataTable : MarshalByValueComponent,
IListSource, ISupportInitializeNotification,
ISupportInitialize, ISerializable, IXmlSerializable
public class MarshalByValueComponent :
IComponent, IDisposable, IServiceProvider
您的代碼塊將罩下被表示爲如下所示,所以它保證Dispose()方法將被稱爲:
{
DataTable dt = Admin_User_Functions.Admin_KitItems_GetItems()
try
{
// .. code inside using statement
}
finally
{
if (dt != null)
((IDisposable)dt).Dispose();
}
}
見MSDN更多細節:using Statement
我知道使用聲明..... p..s謝謝。爲answe +1。 –
通過方式,看看這個 –
反射器顯示的方法。您可以切換「繼承成員」(Ctrl + I)以顯示或隱藏方法。 – AMissico
反射器>工具>選項>瀏覽器>選中「顯示繼承的成員」。 – AMissico