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

こんにちは、私はこの行に出くわしました。誰でもこの行を解読できますか、それらを私のための括弧内にグループ化できますか?c# - 条件式(数行)

ありがとうございました。事前に感謝:D

+1

は、私はちょうどそのコードを捨てるしたい、それが読みにくいですよりも、他の理由がある場合。それをparanthesisでグループ化するほうがずっと良いかもしれませんし、if文を使ってこのようなことを書いたほうが良いでしょう。たとえば、 'isGeneric = variableA!= null? – Hill

+0

haha​​ ... meh ..私はそう思っていました。私の職場でこのコードを見ましたが、間違いなくそれをそれに変更します!(variableB!= null?false:true):true;ありがとうbro: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