![](/img/trans.png)
[英]Using C#'s 'using' statement with a custom object's function, do I Need to implement IDisposable?
[英]Does C#/VB.NET using statement actually do anything with classes that do not implement IDisposable
如果我有類似以下內容:
public class Myclass{
//some resources
}
然后在另一堂課中,我執行以下操作:
using(Myclass myclass = new Myclass()) {
// do things with myclass instance
}
在這種情況下,using語句是否實際提供任何使用? Myclass
尚未實現IDisposable
接口,因此沒有要調用的Dispose()
方法。 我在正確考慮嗎?
如果您的類未實現IDisposable
則不能在using
語句中使用它。 這將是編譯時錯誤。
除此之外, using
語句轉換為try-finally
塊,並在using語句結束時調用Dispose
(即使在發生異常的情況下) 。 CLR 實際處置對象沒有什么神奇的事情,這完全取決於Dispose
的實現。 您可以有一個空的Dispose
方法實現,並且不會起作用。
您不能與不能實現IDisposable
類型一起using
。 您將得到一個編譯器錯誤。 而已。
IDisposable
接口。 IDisposable
接口... 這是您遇到的CS1674編譯器錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.