2013-11-23 36 views
0

我有我的劇本有問題的字符串變量,那就是:如何爲不同的值分配給使用的分支,如果條件

string myOutput = "image.png"; 

    if (myOutput.Contains("youtu.be")) 
    { 
     string statementOutput = "Video ouput"; 
    } 
    else 
    { 
     if (myOutput.Contains(".png")) 
     { 
      string statementOutput = "Image output"; 
     } 
     else 
     { 
      string statementOutput = "Nothing's here"; 
     } 
    } 

    Label1.Text = statementOutput; 

有了上面的代碼,我得到編譯時錯誤:

The name 'statementOutput' does not exist in the current context

我想要做的是,如果我的字符串例如在myOutput變量中具有"youtu.be",它會將字符串「statementOutput」設置爲值「Video Ouput」​​,如果它包含.png,則將字符串值更改爲「Image Ouput」並且如果「myOutput」字符串中沒有任何內容,它就會顯示沒什麼。

回答

2

我認爲問題在於你在所有if-else語句中聲明瞭「statementOutput」。嘗試使用

string myOutput = "image.png"; 
string statementOutput; 

if (myOutput.Contains("youtu.be")) 
{ 
    statementOutput = "Video output"; 
} 
else 
{ 
    if (myOutput.Contains(".png")) 
    { 
     statementOutput = "Image output"; 
    } 
    else 
    { 
     statementOutput = "Nothing's here"; 
    } 
} 

Label1.Text = statementOutput; 
+1

哦,是的,萬歲的邏輯;)謝謝你! – Kvist

1

試試這個:

string myOutput = "image.png"; 
string statementOutput = "Nothing's here"; 

if (myOutput.Contains("youtu.be")) 
{ 
    statementOutput = "Video ouput"; 
} 
else if (myOutput.Contains(".png")) 
{ 
    statementOutput = "Image output"; 
} 

Label1.Text = statementOutput; 
+0

這也是錯誤的。無論投票是誰,都像你一樣匆匆+1 –

+0

+1。默認值可能應該是'String.Empty' ...使用'else if'方式編寫條件時,根據需要鏈接更多條件應該更容易。 –

0

這應該工作:

string myOutput = "image.png"; 
string statementOutput = ""; 

if (myOutput.Contains("youtu.be")) 
{ 
    statementOutput = "Video ouput"; 
} 
else 
{ 
    if (myOutput.Contains(".png")) 
    { 
     statementOutput = "Image output"; 
    } 
    else 
    { 
     statementOutput = "Nothing's here"; 
    } 
} 

Label1.Text = statementOutput; 

的問題是變量的範圍。如果你聲明瞭你的變量,你聲明的變量只存在於當前已被聲明的代碼塊中。按照您編寫代碼的方式,在每個代碼塊中聲明不同的變量,並在每個塊的末尾將其銷燬。你應該清楚自己,即使認爲這些變量具有相同的名稱,但它們絕對不一樣。

相關問題