Te veel karakters in letterlijke fout

Ik worstel met een stukje code en krijg de foutmelding:

Te veel tekens in letterlijke letterfout

C# en switch-statement gebruiken om een ​​stringbuffer te doorlopen en tokens te lezen, maar de fout in deze regel krijgen:

geval ‘&&’:

geval ‘||’:

geval ‘==’:

Hoe kan ik de ==en &&als een char behouden?


Antwoord 1, autoriteit 100%

Dit komt omdat in C# enkele aanhalingstekens ('') een enkel teken aangeven (of inkapselen), terwijl dubbele aanhalingstekens ("") worden gebruikt voor een reeks karakters. Bijvoorbeeld:

var myChar = '=';
var myString = "==";

Antwoord 2, autoriteit 6%

Hier is een voorbeeld:

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

Tekens worden gescheiden door enkele aanhalingstekens en tekenreeksen door dubbele aanhalingstekens.

Het goede nieuws is dat C# switch-statements werken met strings!

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

Antwoord 3, autoriteit 2%

Je kunt ==of ||niet als tekens behandelen, omdat het geen tekens zijn, maar een reeks tekens.

Je zou je switch…case in plaats daarvan op snaren kunnen laten werken.


Antwoord 4, autoriteit 2%

Een teken kan slechts één teken bevatten, een letterlijk teken is een enkel teken tussen enkele aanhalingstekens, bijv. '&'– als u meer tekens dan één heeft, wilt u een tekenreeks gebruiken, daarvoor moet je dubbele aanhalingstekens gebruiken:

case "&&": 

Antwoord 5

Ik geloof dat je dit kunt doen met een Unicode-codering, maar ik betwijfel of dit is wat je echt wilt.

De ==is de unicode-waarde 2A76, dus ik denk dat je dit kunt doen:

char c = '\u2A76';

Ik kan dit momenteel niet testen, maar ik zou graag willen weten of dat voor u werkt.

Je zult moeten graven naar de anderen. Hier is een Unicode-tabel als je wilt kijken:

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


Antwoord 6

Ik had hetzelfde probleem.
String.Replace('\\.','')is geen geldige instructie en geeft dezelfde fout.
Dankzij C# kunnen we dubbele aanhalingstekens gebruiken in plaats van enkele aanhalingstekens en de volgende werken
String.Replace("\\.","")

LEAVE A REPLY

Please enter your comment!
Please enter your name here

one + 11 =

Other episodes