C# 我可以用条件运算符简化这段代码吗?
我想去掉if-else语句,我能用三元运算符/条件运算符吗C# 我可以用条件运算符简化这段代码吗?,c#,operators,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
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";
}
}
不可能,因为第一个块中有多个语句
如果重新构造代码,这是可能的,但对可读性没有帮助。否。这是不可能的,因为第一个块中有多个语句 如果重新构造代码,这是可能的,但对可读性没有帮助。如何:
control con = String.IsNullOrEmpty(error) ? new control() { text = "success" } :
new control() { text = error, result = 123 };
那么:
control con = String.IsNullOrEmpty(error) ? new control() { text = "success" } :
new control() { text = error, result = 123 };
你可以这样简化你的代码:
var con = new control { text = "success" };
if (string.IsNullOrEmpty(error)) return;
con.result = 123;
con.text = error;
始终尝试删除不必要的嵌套块。这些块降低了代码的可读性。u可以像这样简化代码:
var con = new control { text = "success" };
if (string.IsNullOrEmpty(error)) return;
con.result = 123;
con.text = error;
始终尝试删除不必要的嵌套块。这些块降低了代码的可读性。如果块内的语句不同,该怎么办
if(!string.IsNullorEmpty(error){count+=1;}否则{result+=failed on something}
if-else之后还有更多代码要执行???@user3629247no-三元运算符生成一个结果。@DanielA.White:didnt get u?关于重新构造code@user3629247有一种方法,但它不是很清楚——以amanezjak的答案为例(!string.IsNullorEmpty(错误){count+=1;}其他{result+=“在某些方面失败”}if-else之后还有更多代码要执行???@user3629247no-三元运算符生成一个结果。@DanielA.White:didnt get u?关于重新构造code@user3629247有一种方法,但它不是很清楚——以amanezjak的答案为例。在大多数情况下,您应该使用string.IsNullOrEmpty
,而不是==“
,==null
等。在大多数情况下,您应该使用字符串。IsNullOrEmpty
,而不是=”
,==null
等。您应该知道代码的外观(缩进、空行等)。代码应该是缩进属性(4个空格,无制表符)使代码更具可读性。删除两个以上连续的空行也是一个好主意。您应该知道代码的外观(缩进、空行等)。代码应该缩进属性(4个空格,无制表符)以使代码更具可读性。删除两个以上连续的空行也是一个好主意。