C# 能否在使用块中处置多个对象?
如何在Using语句中处理多个对象 示例代码C# 能否在使用块中处置多个对象?,c#,.net,C#,.net,如何在Using语句中处理多个对象 示例代码 using(MyClass obj = new MyClass()) { MyOtherClass objOC= new MyOtherClass() TextReader objTR = new StringReader(...); // other code } MyClass obj将在Using块的末尾处理,但是接下来呢 MyOtherClass objOC和TextReader objTR。据我所知,它们不会被
using(MyClass obj = new MyClass())
{
MyOtherClass objOC= new MyOtherClass()
TextReader objTR = new StringReader(...);
// other code
}
MyClass obj
将在Using块的末尾处理,但是接下来呢
MyOtherClass objOC
和TextReader objTR
。据我所知,它们不会被处理,所以我应该在那里有一个嵌套的Using块,如下所示?如果对象数量增加,我需要一个真正的宽屏幕显示器
下面的内容正确吗?
using(MyClass obj = new MyClass())
{
using (MyOtherClass objOC= new MyOtherClass())
{
using (TextReader objTR = new StringReader(...))
{
//code using all three objects
}
}
// other code using just `MyClass obj`
}
MyClass和MyOtherClass都实现了
IDisposable
是的,如果您想保证Dispose(…)
调用所有这些类,您必须使用第二个示例中的语句将它们封装在中
或者可以使用
语句在单个中声明多个对象。这是一个编码风格和代码流的问题。是的,您的代码是正确的。这里还有一些你可能想知道的事情
可以在一个using语句中声明同一类型的多个对象。从:
要使用不同类型的多个对象,可以使用单行语法嵌套以节省空间:
using (MyClass obj = new MyClass())
using (MyOtherClass objOC= new MyOtherClass())
using (TextReader objTR = new StringReader(...))
{
// code using all three objects
}
相关的:
using (MyClass obj = new MyClass())
using (MyOtherClass objOC= new MyOtherClass())
using (TextReader objTR = new StringReader(...))
{
// code using all three objects
}