aspx网站如何架设,worldpress 建站,网站建设uuiop,工业产品设计展板using和IDisposable是组合使用的#xff0c;像这种一个关键字和一个接口的组合#xff0c;在C#中很少见的#xff0c;using这个关键字#xff0c;也就因为IDisposable多了一个身份。其实很多人都知道IDisposable#xff0c;有一个方法void Dispose()#xff0c;通常是用来… using和IDisposable是组合使用的像这种一个关键字和一个接口的组合在C#中很少见的using这个关键字也就因为IDisposable多了一个身份。其实很多人都知道IDisposable有一个方法void Dispose()通常是用来释放一些必须释放的资源时要实现这个接口这样就可以在使用using后调起这个Dispose()。之前在使用using时需要给using一个使用范围现在推荐不使用范围那接下来看看有什么区别。实现IDisposable接口的类class Test : IDisposable
{private readonly string _name;public Test(string name){_name name;}public void Dispose(){WriteLine(${_name} Dispose);}public void CallMethod_1(){WriteLine(CallMethod_1);}
}
之前的用法1 end在1 Dispose的后面这个很好理解因为using下面有一个{}范围。void Call01()
{using (var test new Test(1)){test.CallMethod_1(); }WriteLine(1 end);
}
现在可以使用的用法2 end始终在2 Dispose的前面即使我们在WiteLine(2 end)前面调用test.Dispose()也会在Call02方法结束后再调一次Dispose。void Call02()
{using var test new Test(2);test.CallMethod_1();WriteLine(2 end);
}
就按开始的说法如果Dispose是释放一些资源有些资源不能释放多次这个时候就要注意了不能多次调用Dispose()所以即然用了using就不用关注Dispose()了。