我可以用条件运算符简化这段代码吗?

时间:2014-05-30 14:53:14

标签: c# operators

我想摆脱那个if else语句是否可以用三元运算符/条件运算符来实现呢?

public class control
{
public int result;
public int text;
}

public class someclas
{
 control con = new control();
 if(!string.IsNullOrEmpty(error))  //// **Is it possible to use ternary / conditional operator to avoid below if else statements ?**
{
control.result = 123;
control.text = error;
}
else
{
control.text ="success";
}
}

3 个答案:

答案 0 :(得分:2)

没有。这是不可能的,因为第一个块中有多个语句。

如果您重新构建代码,则可能,但它对可读性没有帮助。

答案 1 :(得分:2)

怎么样:

control con = String.IsNullOrEmpty(error) ? new control() { text = "success" } : 
                                            new control() { text = error, result = 123 };

答案 2 :(得分:0)

你可以像这样简化你的代码:

var con = new control { text = "success" };
if (string.IsNullOrEmpty(error)) return;
con.result = 123;
con.text = error;

总是尝试删除不必要的嵌套块。这些块会降低代码的可读性。