C# 拥有大量的if-else条件是否是一种良好的实践?
在我的一个web应用程序中,我正在使用代码隐藏中的字符串生成器C# 拥有大量的if-else条件是否是一种良好的实践?,c#,asp.net,if-statement,stringbuilder,C#,Asp.net,If Statement,Stringbuilder,在我的一个web应用程序中,我正在使用代码隐藏中的字符串生成器 StringBuilder str = new StringBuilder(); if (isLogIN != false) { if (isValidUser == true) { str.Append("<div id='sfBtnSubmitWrapper' >"); if (CheckIfAlreadyPlayed()) {
StringBuilder str = new StringBuilder();
if (isLogIN != false)
{
if (isValidUser == true)
{
str.Append("<div id='sfBtnSubmitWrapper' >");
if (CheckIfAlreadyPlayed())
{
str.Append("<input type='button'");
str.Append("value='Predict Now' class='sfBtn' id='sfBtnSubmitAnswer' />");
}
else
{
str.Append("<input type='button'");
str.Append("value='Already participated.' class='sfBtn' id='sfBtnSubmitAnswer' />");
}
str.Append("</div>");
}
else
{
if (CheckEarnedGame())
{
str.Append("<div id='sfBtnSubmitWrapper' ><input type='button'");
str.Append("value='Predict Now' class='sfBtn' id='sfBtnSubmitAnswer' />");
str.Append("<p style='color:green'>You have reached your daily limit");
str.Append("but your earned games still remain.</p>");
str.Append("</div>");
}
else
{
str.Append("<div id='sfSettingInfo'>");
str.Append("<a class='ClosePopupImg' id='closeOptionDiv' title='Close'></a>");
str.Append("<span id='errorLimitmsg'>");
str.Append("<p style='color:red'>Sorry !!!</br>You have crossed");
str.Append("your limit of games.</p></span><span id='btnPlayMore'");
str.Append("class='sfBtn'>Play More");
str.Append("</span><div id='optionDiv'></div></div>");
}
}
}
StringBuilder str=new StringBuilder();
if(isLogIN!=false)
{
如果(isValidUser==true)
{
str.Append(“”);
如果(选中IfalReadyPlayed())
{
str.Append(“”);
}
其他的
{
str.Append(“”);
}
str.Append(“”);
}
其他的
{
if(checkEarnedName())
{
str.Append(“”);
str.Append(“您已达到每日限制”);
str.Append(“但您赢得的游戏仍然存在。
”;
str.Append(“”);
}
其他的
{
str.Append(“”);
str.Append(“”);
str.Append(“”);
str.Append(“对不起!!!你已经越界了”);
str.Append(“你的游戏限制。
玩更多”);
str.Append(“”);
}
}
}
我在实际代码中使用了更多的(if-else)条件。我有点搞不清楚使用大量if-else条件是一种好的做法,还是有其他方法可以做到这一点。你所说的是,不,它不是那么好 每次添加一条新的if语句时,本质上都会创建另一条代码可以遵循的路径,从而降低其复杂性 也就是说,使用if/else语句并不坏,没有它们就无法真正编写代码 但是,正如您已经通过查看代码发现的,它似乎有点脏 那怎么办呢 欢迎来到软件设计和设计模式 非常常见的设计模式通常可以覆盖这些类型,我会先通过原则了解基本知识,然后再阅读一些常见的模式
一旦你开始走这条路,你就会开始看到简单的解决方案。你所说的是,不,它不是那么好 每次添加一条新的if语句时,本质上都会创建另一条代码可以遵循的路径,从而降低其复杂性 也就是说,使用if/else语句并不坏,没有它们就无法真正编写代码 但是,正如您已经通过查看代码发现的,它似乎有点脏 那怎么办呢 欢迎来到软件设计和设计模式 非常常见的设计模式通常可以覆盖这些类型,我会先通过原则了解基本知识,然后再阅读一些常见的模式
一旦沿着这条路径开始,您将开始看到简单的解决方案。如果您尝试将“if”下的每个代码块提取到函数,那么您应该尝试通过抽象委托执行(每个块/函数将是从公共接口继承的类的方法)如果您尝试将“if”下的每个代码块提取到函数,那么您是否应该尝试通过抽象来委托执行(每个块/函数都将是从公共接口继承的类方法)@Acme您可以向我推荐除上述方法之外的任何其他方法吗?您尚未指定您的要求。你只问了很多的
如果else
是好是坏,没有一个答案。你的代码在我看来还可以。当唯一可能的答案是“视情况而定”时,这个问题不太适合这样做。我必须通过字符串生成器附加html标记,我必须检查很多条件,使用这种方法时它看起来很混乱。所以我正在寻找最好的方法。@很难判断您是否可以使用switch或嵌套switch case语句,因为我不确定你的要求。如果你认为你可以实现开关盒stmts。它比使用大量的If-else梯子干净得多/blocks@Acme你能给我提一下以上以外的其他建议吗?你还没有具体说明你的要求。你只问了很多的如果else
是好是坏,没有一个答案。你的代码在我看来还可以。当唯一可能的答案是“视情况而定”时,这个问题不太适合这样做。我必须通过字符串生成器附加html标记,我必须检查很多条件,使用这种方法时它看起来很混乱。所以我正在寻找最好的方法。@很难判断您是否可以使用switch或嵌套switch case语句,因为我不确定你的要求。如果你认为你可以实现switch case stmts。它比使用大量If-else梯形图/块要干净得多