私はコードに苦労しており、エラーを取得しています:
文字リテラルエラーの文字が多すぎます
C#とswitchステートメントを使用して文字列バッファーを反復処理し、トークンを読み取りますが、次の行でエラーを取得します。
ケース '&&':
ケース '||':
ケース '==':
どうすれば==
および&&
文字として?
これは、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;
}
==
または||
は、charsではなくcharのシーケンスであるため、charsとして処理できません。
代わりに、switch ... caseを文字列で機能させることができます。
文字は単一の文字のみを保持でき、文字リテラルは単一引用符で囲まれた単一の文字、つまり'&'
-文字列を使用したい文字が複数ある場合は、二重引用符を使用する必要があります。
case "&&":
Unicodeエンコードを使用してこれを行うことができると思いますが、これが本当に必要なことではないかと思います。
==
はUnicode値2A76なので、これを行うことができると信じています。
char c = '\u2A76';
現時点ではこれをテストすることはできませんが、それがあなたに役立つかどうか知りたいと思います。
他の人のために掘り下げる必要があります。ご覧になりたい場合は、Unicodeテーブルをご覧ください。