[英]The bare minimum of Implementing and using IDisposable
我在模仿.NET的會話,但有一些細微的差別(我的班級只有預定義的字段-字符串或整數。)。
我已經閱讀了MSDN和有關實現IDisposable的一些SO帖子,但似乎太多了。
我的計時器Elapsed事件的事件處理程序調用一個靜態方法,該方法應該處理發送給它的對象。
像這樣:
public APISession()
{
timer.Elapsed +=new ElapsedEventHandler(disposeSession);
timer.Start();
}
private static void disposeSession(object obj,ElapsedEventArgs elapsedEventArgs)
{
//Should dispose APISession here (not obj - which is the timer,
//but rather -this)
}
public void Dispose()
{
throw new NotImplementedException();
}
補充:這是APISession的聲明:
class APISession:IDisposable
有人可以告訴我如何處置當前的APISession對象嗎?
謝謝。
如果僅在disposeSession方法中使用該對象,則必須在該對象中進行處理。 通過實現IDisposable只能處置類變量。
如果該方法實現了IDisposable,則在disposeSession方法的末尾添加以下代碼以進行處理。
if(toDispose is IDisposable)
(toDispose as IDisposable).Dispose();
或者你可以這樣寫
IDisposable disposable = toDispose as IDisposable;
if( disposable != null )
disposable.Dispose();
編輯添加了通過注釋更正的演員表,並使用as添加了版本並檢查是否為null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.