Was ist der Fehler in diesem C#-Code?

5 Antworten

Hey ho,

Semikolon vergessen? Sieht auf den ersten Blick so aus. ;-)

MfG

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting

JonaKilla12345 
Fragesteller
 29.09.2017, 14:59

Ne, hab ich nur hier vergessen ;D

0

Hallo!

Auch wenn die Frage bereits beantwortet ist, möchte ich die Lösung für andere Nutzer mit einem ähnlichen Problem nochmals kurz ausführen.

Der Methode Start wird als Parameter ein String (Zeichenkette) übergeben, dieser aus jeglichen, vorkommenden Zeichen bestehen kann. Ergo besteht jeder String aus n Zeichen.
Innerhalb der Strings gibt es jedoch sogenannte "Escape Sequenzen", mit dessen Hilfe beispielsweise Zeilenumbrüche oder Tabulatoren innerhalb des Strings realisiert werden können. Um nun dem Compiler zu sagen, dass es sich bei dem String nicht nur um reinen Text (grob gefasst) handelt, werden die Escape Sequenzen durch den Backslash ( \ ) eingeleitet.

Als Beispiel können wir hier den String: "Emma geht es gut!" nehmen.
Wenn wir nun einen Zeilenumbruch nach jedem Wort einsetzen wollen, könnte dies wie folgt aussehen.

"Emma\ngeht\nes\ngut".

Hier steht der Backslash für die Initialisierung der Escapesequenz und das "n" für den Zeilenumbruch.

Auf obigen String, als Pfadangabe, bezogen sind hier mehrere Backslash innerhalb des Pfades angegeben. Diese werden aber nicht als Zeichen, sondern als Initialisierung der Escape Sequenz interpretiert("C:\Users\beispiel\beispiel\beispiel.exe"). In der Folge kommt es zu dem Compilerfehler CS1009, indess die eingeleitete Escapesequenz nicht erkannt wird.
Als Lösung, um weiterhin einen Backslash als Zeichen in einem String verwenden zu können, wurde der "Doppelbackslash" eingeführt. Hierbei wurde der Backslash als Escapezeichen definiert, woraus dann zwei Backslash hintereinander resultierten. Durch den ersten wird die Escapesequenz eingeleitet und durch den zweiten das Zeichen gesetzt.

Dies ist die ausführliche Antwort auf eine leichte Frage ;).

Wie gesagt, wurde die Frage bereits einfach beantwortet. Dennoch hoffe ich mit der ausführlichen Antwort noch ein wenig mehr zur Lösung ( auch für andere ) beitragen zu können.

Liebe Grüße,
Norman

Gelöst. Für Leute, die das gleiche Problem haben, hier der richtige Code:

Process.Start("C:\\Users\\beispiel\\beispiel\\beispiel.exe");

Der Backslash muss "escaped" werden.

Process.Start(@"C:\Users\beispiel\beispiel\beispiel.exe")

Was kommt denn als Fehler?
VisualStudio gibt das ja an


JonaKilla12345 
Fragesteller
 29.09.2017, 14:59

Nicht erkannte Escape-Sequenz

0