“字符文字错误中的字符过多”

时间:2011-04-09 17:37:07

标签: c# char

我正在努力处理一段代码并收到错误:

  

字符文字错误中的字符太多

使用C#和switch语句迭代字符串缓冲区并读取标记,但在此行中收到错误:

  

案例'&&':

     

案例'||':

     

case'==':

如何将==&&保留为字符?

6 个答案:

答案 0 :(得分:91)

这是因为,在C#中,单引号('')表示(或封装)单个字符,而双引号("")用于字符串。例如:

var myChar = '=';

var myString = "==";

答案 1 :(得分:4)

以下是一个例子:

char myChar = '|';
string myString = "||";

字符用单引号分隔,字符串用双引号分隔。

好消息是C#switch语句与字符串一起使用!

switch (mytoken)
{
    case "==":
        //Something here.
        break;
    default:
        //Handle when no token is found.
        break;
}

答案 2 :(得分:2)

你不能将==||视为字符,因为它们不是字符,而是一系列字符。

你可以让你的开关...案例在字符串上工作。

答案 3 :(得分:2)

一个字符只能包含一个字符,一个字符文字是单引号中的单个字符,即'&' - 如果你有多个字符而不是一个你想要使用字符串,那么你必须使用双引号:

case "&&": 

答案 4 :(得分:1)

我相信你可以使用Unicode编码来做到这一点,但我怀疑这是你真正想要的。

==是unicode值2A76,所以我相信你可以这样做:

char c = '\u2A76';

我现在无法测试这个,但我很想知道这是否适合你。

你需要挖掘其他人。如果你想看,这是一个unicode表:

http://www.tamasoft.co.jp/en/general-info/unicode.html

答案 5 :(得分:0)

我遇到了同样的问题。 String.Replace('\\.','')是无效的语句,并引发相同的错误。 多亏了C#,我们可以使用双引号代替单引号,并且可以进行后续工作 String.Replace("\\.","")