C# 如何使代码更简单(if/else)
如何使此代码更简单C# 如何使代码更简单(if/else),c#,C#,如何使此代码更简单 if (PlayersLevel > 1) button4.Visible = true; else button4.Visible = false; if (PlayersLevel > 2) button5.Visible = true; else button5.Visible = false; 好了,好了,够了,我已经知道=)谢谢只需将值设置为比较结果: button4.Visible = Players
if (PlayersLevel > 1)
button4.Visible = true;
else
button4.Visible = false;
if (PlayersLevel > 2)
button5.Visible = true;
else
button5.Visible = false;
好了,好了,够了,我已经知道=)谢谢只需将值设置为比较结果:
button4.Visible = PlayersLevel > 1;
button5.Visible = PlayersLevel > 2;
button4.Visible = (PlayersLevel > 1);
button5.Visible = (PlayersLevel > 2);
?您不需要If语句,您将通过以下操作获得
True
/False
button4.Visible = PlayersLevel > 1;
button5.Visible = PlayersLevel > 2;
您可以使用的Bool结果
button4.Visible = PlayersLevel > 1;
button5.Visible = PlayersLevel > 2;
另一种方法是:
button4.visible = PlayersLevel > 1 ? true : false;
button5.visible = PlayersLevel > 2 ? true : false;
对有意编写的代码进行一点Linq封装不会有什么坏处。插入此扩展方法
public static void VisibleWhen( this Button button , bool visibilityState )
{
button.Visible = visibilityState ;
}
然后你可以说:
button4.VisibleWhen( PlayersLevel > 1 ) ;
button4.VisibleWhen( PlayersLevel > 2 ) ;
仅供参考,三元是不必要的,但这是一个值得注意的好选择。我更喜欢在这样的情况下使用明确的三元表达式:它使意图非常清楚。@NicholasCarey对,任何不知道布尔表达式是什么的人都能轻松理解三元。@webdad3故意混淆新程序员是一种糟糕的做法。但现在我在喂巨魔,我尽量不这么做。干杯,这是巨魔吗?您担心将布尔值指定给标准布尔属性可能不清楚,因此您希望将其替换为一个没有人听说过的扩展方法,名称中没有动词?我在这里没有看到任何LinQ。他可能认为扩展方法就是LinQ。他们当然与此密切相关。事实上,我似乎记得,它们的加入在很大程度上是为了使LINQ成为可能。
button4.VisibleWhen( PlayersLevel > 1 ) ;
button4.VisibleWhen( PlayersLevel > 2 ) ;