让我们举个例子:
using (var someObject = new SomeObject())
{
var someOtherObject = new SomeOtherObject();
someOtherObject.someMethod();
}
SomeOtherObject
还实现了 IDisposable。当 SomeObject 被释放时, SomeOtherObject 也会被释放吗? SomeOtherObject 会发生什么?
(SomeObject的Dispose方法中没有实现SomeOtherObject的处置)
最佳答案
不会。只会处理 using 子句中的字段。在你的情况下只有 someObject。
基本上该代码被翻译成
var someObject = null;
try
{
someObject = new SomeObject()
var someOtherObject = new SomeOtherObject();
someOtherObject.someMethod();
}
finally
{
if (someObject != null )
someObject.Dispose()
}
关于c# - 使用 "using"关键字时处理的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2386057/