我用來保證資源清理。這對於簡單的代碼塊來說很好。 如果我有一個方法需要傳遞裏面的變量,我還可以保證資源清理嗎?使用和方法參數傳遞
例如,
using (FileStream fs = -----)
{
SomeMethod(fs);
}
我用來保證資源清理。這對於簡單的代碼塊來說很好。 如果我有一個方法需要傳遞裏面的變量,我還可以保證資源清理嗎?使用和方法參數傳遞
例如,
using (FileStream fs = -----)
{
SomeMethod(fs);
}
是。 using(){}
是語法糖,它會擴大你的代碼是:
FileStream fs = -----;
try {
SomeMethod(fs);
} finally {
if (fs != null)
((IDisposable)fs).Dispose();
}
finally
塊,保證執行是否引發異常與否。唯一不會執行的時間是嚴重的運行時間故障,例如堆棧溢出,內存不足異常或運行時本身崩潰。
fs的Dispose()方法將在使用的代碼塊結束時被調用。
是的,它會被丟棄。
請參閱MSDN上using Statement
的示例 - 使用傳入的參數創建Font
。
簡短的回答是肯定的。 – 2010-11-13 08:47:37