using
语句是否总是处置对象,即使其中有返回或抛出异常?即:
using (var myClassInstance = new MyClass())
{
// ...
return;
}
或
using (var myClassInstance = new MyClass())
{
// ...
throw new UnexplainedAndAnnoyingException();
}
最佳答案
是的,这就是重点。它编译为:
SomeDisposableType obj = new SomeDisposableType();
try
{
// use obj
}
finally
{
if (obj != null)
((IDisposable)obj).Dispose();
}
注意这里的术语;对象本身没有被释放。 Dispose()
方法被调用,并且通常会释放非托管资源。
关于c# - "using"语句是否总是处理对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17357258/