Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;“字符文字错误”中的字符太多;_C#_Char - Fatal编程技术网

C# &引用;“字符文字错误”中的字符太多;

C# &引用;“字符文字错误”中的字符太多;,c#,char,C#,Char,我正在与一段代码搏斗,并得到了错误: 字符文字错误中的字符太多 使用C#和switch语句迭代字符串缓冲区并读取令牌,但在此行中出现错误: 案例“&&”: 案例“| |”: 案例“==”: 如何将==和&&保留为字符?您不能将==或|视为字符,因为它们不是字符,而是字符序列 您可以将您的开关…大小写改为字符串。字符只能包含一个字符,字符文字是单引号中的一个字符,即&'-如果要使用字符串的字符多于一个,则必须使用双引号: case "&&": 这是因为,在C#中,单引号(“”)

我正在与一段代码搏斗,并得到了错误:

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

使用C#和switch语句迭代字符串缓冲区并读取令牌,但在此行中出现错误:

案例“&&”:

案例“| |”:

案例“==”:


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

您不能将
==
|
视为字符,因为它们不是字符,而是字符序列


您可以将您的开关…大小写改为字符串。

字符只能包含一个字符,字符文字是单引号中的一个字符,即
&'
-如果要使用字符串的字符多于一个,则必须使用双引号:

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:)。它与字符序列没有任何关系,就像在典型的源文件中一样。