假设定义了一个类:
class TestClass
{
MemoryStream s = new MemorySteam();
void DoStuff()
{
using (s = new MemoryStream())
{
// Do stuff
}
}
}
Run Code Online (Sandbox Code Playgroud)
s当using语句退出范围时会发生什么?
编辑:s在使用其他方法时是否会出现问题?
编辑2:在MemoryStream的第一个实例化中是否会有一个未被引用的对象?
它的Dispose方法被调用.(请注意,它必须实现IDisposable接口,以便它可以保证Dispose可用)
菲尔·哈克(Phil Haack)7年前也写了一篇深入的文章.
更新到您的编辑
一旦方法调用了dispose方法,如果您尝试在方法范围之外使用它,它将抛出异常.所以,是的,在使用之外引用它是不好的.确切地说,它将抛出ObjectDisposedException