using(IDisposable A = new AnyDisposableClass()){
// coding...
}
==>
IDisposable A;
try{
A = new AnyDisposableClass();
// coding...
}
finally{
A.Dispose();
}
大概这么个意思,IDisposable接口就是用来做资源释放的,主要是释放非托管的资源。其实通常的实现中,托管非托管都被Dispose方法释放掉了。要看具体怎么实现。
这些和using都没啥直接联系了。using就是个编译器的玩具。
Using 只是一种语法糖。用于执行完代码块之后。自动调用 Dispose方法用的。原则上只要是实现了IDisposable接口。就可以用using语法。