假设我有这样的方法:
public byte[] GetThoseBytes()
{
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
ms.WriteByte(1);
ms.WriteByte(2);
return ms.ToArray();
}
}
这还会处理'ms'对象吗?我有疑问,可能是因为在语句块结束之前会返回一些东西。
谢谢, AJ。
答案 0 :(得分:11)
是。 using (x = e) { s }
是{ x = e; try { s } finally { x.Dispose(); } }
答案 1 :(得分:4)
是的,Using creates a try..finally block,因此它会释放ms(如果你将ns设置为null,甚至会进行空检查。)
答案 2 :(得分:4)
是的,Using语句背后的整个想法是它会自动处理你“使用”的任何流/对象。很好。