我有一个场景,我有两个新对象,其中只有一个必须根据条件进行初始化。
但是我使用“using”块语句来初始化一个新对象。
我怎样才能实现它?请参考以下方案。
int a;
string b;
if()//some codition
{
using(MyClass c1 = new MyClass(a))
{
SomeMethod();
}
}
else
{
using(MyClass c1 = new MyClass(b)
{
SomeMethod();
}
}
有没有更好的方法来实现单一条件或任何其他方式来减少代码?因为我在两种情况下都调用相同的方法。
提前致谢。
此致 阿尼什
答案 0 :(得分:6)
您可以使用条件(三元)运算符。
int a;
string b;
using(MyClass c1 = (some condition) ? new MyClass(a) : new MyClass(b))
{
SomeMethod();
}
答案 1 :(得分:2)
怎么样:
using (var c1 = condition ? new MyClass(a) : new MyClass(b))
{
SomeMethod();
}
答案 2 :(得分:2)
有没有更好的方法来实现单一条件或任何其他方式来减少代码?
是的,你可以。
using (MyClass c1 = condition ? new MyClass(a) : new MyClass(b))
{
SomeMethod();
}
?:
是一个三元运算符,顾名思义,它适用于3个操作数。
答案 3 :(得分:1)
IDisposable target = somecondition ? new MyClass(a) : new MyClass(b) ;
using (IDisposable c1 = target )
{
SomeMethod();
}