问题

这是我在我使用的每种语言中都困扰我的东西,我有一个if语句,但条件部分有很多检查,我必须将其分成多行,使用嵌套的if语句,或者只接受它很丑并继续我的生活.

你发现有任何其他方法可能对我和其他任何遇到同样问题的人都有用吗?

示例,一行:

 if (var1 = true && var2 = true && var2 = true && var3 = true && var4 = true && var5 = true && var6 = true)
{
 

示例,多行:

 if (var1 = true && var2 = true && var2 = true
 && var3 = true && var4 = true && var5 = true
 && var6 = true)
{
 

Example-嵌套:

 if (var1 = true && var2 = true && var2 = true && var3 = true)
{
     if (var4 = true && var5 = true && var6 = true)
     {
 

  最佳答案

分离几个布尔的条件,然后使用主布尔作为条件。

 bool isOpaque = object.Alpha == 1.0f;
bool isDrawable = object.CanDraw && object.Layer == currentLayer;
bool isHidden = hideList.Find(object);

bool isVisible = isOpaque && isDrawable && ! isHidden;

if(isVisible)
{
    // ...
}
 

更好:

 public bool IsVisible {
    get
    {
        bool isOpaque = object.Alpha == 1.0f;
        bool isDrawable = object.CanDraw && object.Layer == currentLayer;
        bool isHidden = hideList.Find(object);

        return isOpaque && isDrawable && ! isHidden;
    }
}

void Draw()
{
     if(IsVisible)
     {
         // ...
     }
}
 

确保给出实际上表示意图而不是函数的变量名称.这将极大地帮助开发人员维护您的代码....它可能是YOU!

  相同标签的其他问题

language-agnosticif-statement