.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语句背后的整个想法是它自动处理你正在“使用”的任何流/对象。 做得很好。