2016-05-24 59 views
5
bool isGeneric = variableA != null ? variableB != null ? false : true : true; 

嗨,大家好,我碰到過這一行。任何人都可以破譯這行/將它們分組爲括號給我?c# - 條件運算符表達式(連續幾行)

欣賞任何幫助。在此先感謝:d

+1

我只是想扔出去的代碼一樣,是可怕的,如果沒有其他原因比它難以閱讀。將它與paranthesis分組會更好,或者甚至可以用if語句寫出類似的東西。例如'isGeneric = variableA!= null? (變量B!= null?false:true):true;' – Hill

+0

哈哈......我..我以爲是..我在工作地點遇到了這個代碼..肯定會改變它!感謝兄弟:D – DriLLFreAK100

+1

是的,我想。我在工作的代碼庫中見過一些真正可怕的東西 – Hill

回答

6

這是三元的內三元:

bool isGeneric = variableA != null 
    ? (variableB != null ? false : true) 
    : (true); 

如果variableA不等於空,檢查的首要條件,否則返回true。在第一種情況下,如果variableB不爲空,則返回false,如果是,則返回true

你也可以把它翻譯成以下if/else語句:

bool isGeneric = false; 
if (variableA != null) 
{ 
    if (variableB != null) 
     isGeneric = false; 
    else 
     isGeneric = true; 
} 
else 
    isGeneric = true; 
+0

我的槍在哪裏我想殺人。 應該是 「bool isGeneric =(variableA == null || variableB == null)」 – ahsant

+0

@ahsant自然,但這不是一個準確的解釋代碼的書面:)。 –

+0

非常感謝很多人!在這裏解決了問題:D – DriLLFreAK100