C# &引用;“字符文字错误”中的字符太多;
我正在与一段代码搏斗,并得到了错误: 字符文字错误中的字符太多 使用C#和switch语句迭代字符串缓冲区并读取令牌,但在此行中出现错误: 案例“&&”: 案例“| |”: 案例“==”:C# &引用;“字符文字错误”中的字符太多;,c#,char,C#,Char,我正在与一段代码搏斗,并得到了错误: 字符文字错误中的字符太多 使用C#和switch语句迭代字符串缓冲区并读取令牌,但在此行中出现错误: 案例“&&”: 案例“| |”: 案例“==”: 如何将==和&&保留为字符?您不能将==或|视为字符,因为它们不是字符,而是字符序列 您可以将您的开关…大小写改为字符串。字符只能包含一个字符,字符文字是单引号中的一个字符,即&'-如果要使用字符串的字符多于一个,则必须使用双引号: case "&&": 这是因为,在C#中,单引号(“”)
如何将
==
和&&
保留为字符?您不能将==
或|
视为字符,因为它们不是字符,而是字符序列
您可以将您的开关…大小写改为字符串。字符只能包含一个字符,字符文字是单引号中的一个字符,即
&'
-如果要使用字符串的字符多于一个,则必须使用双引号:
case "&&":
这是因为,在C#中,单引号(“”
)表示(或封装)单个字符,而双引号(“”
)用于字符串。例如:
var myChar = '=';
var myString = "==";
下面是一个例子:
char myChar = '|';
string myString = "||";
字符用单引号分隔,字符串用双引号分隔
好消息是C#switch语句可以使用字符串
switch (mytoken)
{
case "==":
//Something here.
break;
default:
//Handle when no token is found.
break;
}
我相信您可以使用Unicode编码来实现这一点,但我怀疑这是您真正想要的
=
是unicode值2A76,因此我相信您可以这样做:
char c = '\u2A76';
我现在无法测试,但我很想知道这是否对你有效
你需要四处寻找其他人。如果要查看,请查看以下unicode表:
我也面临同样的问题。
String.Replace('\\.','')
是无效语句,并引发相同的错误。
多亏了C#,我们可以使用双引号而不是单引号,并完成以下工作
String.Replace(“\\”,”)
这些不是单个字符…U+2A76是“三个连续的等号”,而不是两个(cf:)。它与字符序列没有任何关系,就像在典型的源文件中一样。