使用“使用”块语句时使用其他语句的任何更好的使用方法



我有一个场景,其中我有两个新对象,其中只能根据条件初始化一个对象。

,但我正在使用"使用"块语句来初始化新对象。

我该如何实现?请参阅以下方案。

int a;
string b;
if()//some codition
{
    using(MyClass c1 = new MyClass(a))
    { 
            SomeMethod();
    }
}
else
{
    using(MyClass c1 = new MyClass(b)
    {
             SomeMethod();
    }
}

有什么更好的方法可以在单一条件下或其他任何减少代码的方法来实现这一目标?因为我在两种情况下都在调用相同的方法。

预先感谢。

问候,Anish

您可以使用条件(三元)操作员。

int a;
string b;
using(MyClass c1 = (some condition) ? new MyClass(a) : new MyClass(b))
{
    SomeMethod();
}

怎么样:

using (var c1 = condition ? new MyClass(a) : new MyClass(b))
{
    SomeMethod();
}

有什么更好的方法可以在单一条件或其他任何减少代码的方法中实现这一目标?

是的,你可以。

using (MyClass c1 = condition ? new MyClass(a) : new MyClass(b))
{
    SomeMethod();
}

?:是一个三元运算符,顾名思义,可用于3个操作数。

  IDisposable target = somecondition ?  new MyClass(a)  : new MyClass(b) ;
  using (IDisposable c1 = target )
  {
                SomeMethod();
  }

最新更新