我们都知道,using
对于想要及时清理的资源,比如打开的文件或者数据库的连接,这个语句是非常有用的。
Dispose()
我想知道在资源清理不是该方法的目标而是重置到以前的状态的情况下使用该语句是否被认为是一件好事。
例如,一个类允许 using 语句包装一个过程,该过程需要相当长的时间并将 Cursor 更改为等待状态。
class CursorHelper : IDisposable
{
readonly Cursor _previousState;
public CursorHelper(Cursor newState)
{
_previousState = Cursor.Current;
Cursor.Current = newState;
}
public void Dispose()
{
Cursor.Current = _previousState;
}
}
然后可以这样使用该类,而不必担心完成后恢复光标。
public void TimeIntensiveMethod()
{
using (CursorHelper ch = new CursorHelper(Cursors.WaitCursor))
{
// something that takes a long time to complete
}
}
这是对using
语句的适当使用吗?