2013-02-19 58 views
-1

創建類MustDispose.cs類對象使用在C#

public class MustDispose 
{ 
    public MustDispose() 
    { 

    } 
} 

in.aspx頁

protected void Page_Load(object sender, EventArgs e) 
    {   
     using (MustDispose obj = new MustDispose) 
     { 
      // use the object 
     } 
    } 

errorr

析構函數創建和object.Finalize不能直接調用。考慮 調用IDisposable.Dispose(如果可用)。

+0

問題還不清楚,但我認爲問題是,你還沒有實施'IDisposable'所以'使用()'着訪問'的Dispose()' – sll 2013-02-19 11:59:41

+0

肯定如果你只花了5分鐘時間研究一下,你本可以想出來嗎? – 2013-02-19 12:00:20

回答

0

您的課程需要補充IDisposable,或在using聲明中使用。

實施例:

public class MustDispose : IDisposable 
{ 
    public MustDispose() 
    { 

    } 

    //implement Dispose 
    public void Dispose() 
    { 
     .... 
    } 
} 

using讀取:

提供了一個方便的語法,以確保正確的使用 IDisposable的對象。

0

您需要實現IDisposable像這樣:

class TestDispose : IDisposable 
{ 
    public TestDispose() 
    { 
     ... 
    } 

    public void Dispose() 
    { 
     // dispose of your resources here 
    } 
} 

然後,你將能夠在一個using塊,在該塊結束時自動調用obj.Dispose使用它。

using (var obj = new TestDispose()) 
{ 
    ... 
} 

是這樣的:

var obj = new TestDispose(); 

try 
{ 

    ... 
} 
finally 
{ 
    obj.Dispose(); 
} 
+0

'using'與調用'Dispose'不完全相同。如果在描述中創建「obj」後引發異常,會發生什麼情況? – 2013-02-19 12:03:15

+0

良好的捕獲,更新它是一個更準確的代表。你會同意嗎? – 2013-02-19 12:43:03