.NET / C# – 使用’using’语句处理对象

假设我有一个这样的方法:

public byte[] GetThoseBytes() { using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) { ms.WriteByte(1); ms.WriteByte(2); return ms.ToArray(); } } 

这还会处理’ms’对象吗? 我有疑问, 可能是因为在语句块完成之前返回了一些内容。

谢谢,AJ。

是。 using (x = e) { s }{ x = e; try { s } finally { x.Dispose(); } } { x = e; try { s } finally { x.Dispose(); } }

是的, 使用创建一个try..finally块 ,所以它处理ms(甚至在你将ns设置为null的情况下进行空检查)。

是的,Using语句背后的整个想法是它自动处理你正在“使用”的任何流/对象。 做得很好。