2016-12-12 56 views
-4
char a = Convert.ToChar("=="); 
case "==": 
if(b==c) 
{ 
    Console.WriteLine("the answer is valid" + b + " " + c); 
} 

我想知道爲什麼「個案」只支持單引號的字符值。爲什麼不是一個字符串值?在變量中,我存儲了一個字符串值。錯誤不能隱含地將字符串[]轉換爲字符[]的情況

+0

你是否在'a'開關? – haim770

+1

您的C#代碼無效。請發佈您的實際代碼。 –

+0

它取決於switch()語句中的類型。如果你轉換成一個字符,那麼情況就是一個字符。如果類型是一個字符串,那麼大小寫是一個字符串。 – jdweng

回答

1

您有多個錯誤或誤解。


首先,C#語言的工作原理如下:

  • String可以是0個或多個字符,並且由"(雙引號)分隔。
  • A Char剛好是1個字符,由'(單引號)分隔。

此外,聲明char a = Convert.ToChar("==")將失敗,因爲給定的字符串時,它只接受長串1,而"=="長度爲2

要得到一個字符,使用這個:char a = '=';
或者,如果你從其他地方獲得的字符串,請使用char a = str[0];


最後,switch ... case語句可以使用字符串或字符(以及其他類型,例如整數或枚舉),但不混合一起

所以後switch使用的類型必須是相同的,因爲每個case之後使用的類型。

如果後switch使用的類型是char,則每個case後的常數也必須是字符,通過'(單引號)分隔。

相關問題