我想純粹使用using
語句來進行範圍管理。我可以省略明確引用實現IDisposable
的基礎對象嗎?我可以在RHV(右手價值)中使用使用語句嗎?
例如,給這個declaraions:
class ITransactionScope : IDisposable {}
class TransactionGuard : ITransactionScope {...}
class DbContext
{
public IDisposable ITransactionScope()
{
return new TransactionGuard();
}
}
我能做到以下幾點:
void main()
{
var dbContext = new DbContext();
using (dbContext.TransactionScope())
{
// the guard is not accessed here
}
}
期間using
語句TransactionGuard
實例還活着嗎?
你可以試試。在返回的作用域實例的Dispose()方法中設置一個斷點並查看它是否被調用。 – linuxuser27 2012-04-03 15:31:40
我真的希望你可以,因爲我使用相同的策略,它的工作原理:) – 2012-04-03 15:31:50
如果你關心的只是範圍管理,你不能只在代碼中加上大括號(沒有「使用」),那將是明確的代碼裏面的範圍? – 2012-04-03 15:40:23