問題

這是我在我使用的每種語言中都困擾我的東西,我有一個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