.NET/C#-使用';使用';陈述

.NET/C#-使用';使用';陈述,c#,.net,using-statement,C#,.net,Using Statement,假设我有这样一个方法: public byte[] GetThoseBytes() { using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) { ms.WriteByte(1); ms.WriteByte(2); return ms.ToArray(); } } 这仍然会处理“ms”对象吗?我有疑问,可能是因为在语句块完成之前返回了某些内容。 谢谢

假设我有这样一个方法:

public byte[] GetThoseBytes()
{
    using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
    {
        ms.WriteByte(1);
        ms.WriteByte(2);
        return ms.ToArray();
    }
}
这仍然会处理“ms”对象吗?我有疑问,可能是因为在语句块完成之前返回了某些内容。

谢谢,
AJ.

是,因此它会处理ms(如果您将ns设置为null,它甚至会执行null检查)。

使用(x=e){s}
{x=e;尝试{s}最后{x.Dispose();}}

是的,using语句背后的整个思想是它自动处理您“使用”的任何流/对象。做得很好。

(忽略那篇文章中关于“CLR将代码转换为MSIL”的废话)和try主体内的返回。finally将在返回实际发生之前执行finally子句。@dthorpe:嗯,是的。哎呀:)