C# 更好的if/else语句

C# 更好的if/else语句,c#,C#,这适用于任何语言,但我标记了c#,因为这就是我现在使用的语言 当两个条件中的任何一个为真时,我想运行一些语句,但根据哪一个为真,还有一些额外的特殊语句(只有一个为真) 这看起来很草率(我测试了“condition1”两次),并且只使用了OR语句,因为我希望两种条件都有相同的响应,但是现在增强需要稍微不同的响应。不管怎么说,要想把它装饰起来?这种方法其实并没有那么糟糕if语句非常便宜和快速,只要条件表达式本身便宜和快速。也就是说,您可以将通用功能包装成一个函数: if (condition1) {

这适用于任何语言,但我标记了c#,因为这就是我现在使用的语言

当两个条件中的任何一个为真时,我想运行一些语句,但根据哪一个为真,还有一些额外的特殊语句(只有一个为真)


这看起来很草率(我测试了“condition1”两次),并且只使用了OR语句,因为我希望两种条件都有相同的响应,但是现在增强需要稍微不同的响应。不管怎么说,要想把它装饰起来?

这种方法其实并没有那么糟糕
if
语句非常便宜和快速,只要条件表达式本身便宜和快速。也就是说,您可以将通用功能包装成一个函数:

if (condition1)
{
   CommonFunction();
   //CustomStuff
}
else if (condition2)
{
    CommonFunction();
    //Other stuff
}

这避免了复制粘贴问题,并使条件表达式的执行最少。

这可能更适合codereview?此问题似乎与主题无关,因为它是一个代码审查。检查codereview.stackexchange.com。注意,条件1和条件2可能都是真的。在这种情况下是否要执行附加的_语句2?正如您可能已经知道的,您提供的代码并不能做到这一点。@这并不是一个真正的代码审查,您几乎可以在没有任何代码的情况下提出这个问题,代码只是说明性的。switch语句可能也可以工作……如果使用布尔表达式(例如,
condition1
),则非常便宜和快速“便宜又快!”福格说。我要补充的是in.switch语句要简洁得多。@AndrewGrinder switch语句不能在变量表达式上执行。是的,如果条件是
x==1
,那么它就可以工作,但是许多条件表达式更复杂。
if (condition1)
{
   CommonFunction();
   //CustomStuff
}
else if (condition2)
{
    CommonFunction();
    //Other stuff
}