2016-12-05 24 views
-1

我試圖實現多個條件運算符,但問題是總是如果條件爲真。試圖實現多個條件運算符

我的要求是

如果Headername[CI]== "Yellow"

objnamewritten[CI]== "Banana" or objnamewritten[CI] == "Sun" or objnamewritten[CI] == "lemomn"

然後彈出(ppup)將打開,如果有其他objnamewritten[CI]則彈出(ppup1)將打開。

private void common() 
{ 
    if (Headername[CI]== "Yellow") 
    { 
     if ((objnamewritten[CI]== "Banana" | objnamewritten[CI] == "Sun")|(objnamewritten[CI] == "lemomn" | objnamewritten[CI] == "Sun")) 
     { 
      ppup.Height = Window.Current.Bounds.Height; 
      ppup.IsOpen = true; 
     } 
     else 
     { 
      ppup1.Height = Window.Current.Bounds.Height; 
      ppup1.IsOpen = true; 
     } 
    } 
} 
+7

「or」should是'||'而不是'|' – fubo

+0

@fubo我試過使用||代替|但它不起作用 – micky

+5

「它不會起作用」的含義是什麼?錯誤?結果無效? – Sayse

回答

3

您的代碼中缺少兩件事。

  1. 您未使用或操作正確
  2. 您應該使用equals方法比較字符串(好的做法)

下面的代碼應該工作:

private void common() 
    { 
     if (Headername[CI] == "Yellow") 
     { 
       if (objnamewritten[CI].Equals("Banana") || objnamewritten[CI].Equals("lemomn") || objnamewritten[CI].Equals("Sun")) 
       { 
        ppup.Height = Window.Current.Bounds.Height; 
        ppup.IsOpen = true; 
       } 
       else 
       { 
        ppup1.Height = Window.Current.Bounds.Height; 
        ppup1.IsOpen = true; 
       }    
      } 
      else 
      { 
        ppup1.Height = Window.Current.Bounds.Height; 
        ppup1.IsOpen = true; 
      } 
    } 
+0

這段代碼不會像opp打算的那樣工作!如果HeaderName [CI]與黃色有些不同,他想打開ppup1。至少他寫了這個。 – mybirthname

+0

爲什麼你必須使用Equals來比較字符串? OP的問題是關於C#,其中'=='運算符已經爲字符串重載。 – juunas

+1

「如果有任何其他objnamewritten [CI],則彈出(ppup1)將打開。」他沒有提到Headername [CI]不等於「Yellow」的任何其他情況。 –

0

你可以使用選擇:

private void common() 
{ 
    if (Headername[CI]== "Yellow") 
    { 
    switch (objnamewritten[CI]) 
     { 
     case "Banana": 
     case "Sun": 
     case "lemomn": 
      ppup.Height = Window.Current.Bounds.Height; 
      ppup.IsOpen = true; 
      break; 
     default: 
      ppup1.Height = Window.Current.Bounds.Height; 
      ppup1.IsOpen = true; 
      break; 
     } 
    } 
}