我在
之类的方法中有几个using
语句
public List<Object> MethodA(){
using ( someclassTypeA var1 = IdentifierClass.Object1.createObject())
using ( someclassTypeB var2 = IdentifierClass.Object2.createObject())
using ( someclassTypeC var3 = IdentifierClass.Object3.createObject())
...
//20 of these using statements
...
//test code
}
,当我添加更多测试时,我将拥有几种类似的测试方法。因此,在一个文件中看起来不太好。
有没有一种方法可以缩短using
代码,也许可以从其他类或其他类中获取using
语句?
答案 0 :(得分:3)
我认为您可以将所有这些都包装在共享的类中,因此您不必一遍又一遍地
public class SharedContainer : IDisposible
{
public someclassTypeA Var1 {get;}
public someclassTypeB Var2 {get;}
public someclassTypeC Var3 {get;}
public SharedContainer()
{
Var1 = IdentifierClass.Object1.createObject();
Var2 = IdentifierClass.Object2.createObject();
Var3 = IdentifierClass.Object3.createObject();
}
public void Dispose()
{
Var1.Dispose();
Var2.Dispose();
Var3.Dispose();
}
}
现在,您的客户代码中只有1个using
:
using(var shared = new SharedContainer())
{
shared.Var1.... // whatever
}
但是如果您需要这样做,我建议您遇到更大的问题。
答案 1 :(得分:0)
在C#8中,您可以使用一行:
using var x = IdentifierClass.Object1.createObject();
using var y = IdentifierClass.Object2.createObject();
using var z = IdentifierClass.Object3.createObject();