warum geht das \ zeichen in c# nicht?
Ich habe ein pogramm für mich selbst du ende programmiert und wollte jetzt das design verbessern und eben ein ASCI-Text als design nehmen und leider geht es nicht weil das "\" zeichen aus irgendeinem grund nicht geht .
" ich schicke ein anderes foto rein weil ich den source nicht leaken möchte"
3 Antworten
mit dem \ werden Sonderfunktionen des nachfolgenden Zeichen aufgehoben.
(Nur Microsoft benutzt es als Trennzeichen für Verzeichnisse)
So wird bei Shell-Progammen das $-Zeichen für "Inhalt von <Name>... " benutzt. Will man also ein $ anzeigen, dann muss die Bedeutung "Inhalt von <Name>" aufgehoben werden. Das geht dann mit \$<Name> in dem Falle wird als wirklich $<Name> benutzt, während $<Name> ohne \ den Inhalt der Variablen "Name" ausgibt.
In deinem Falle musst du die Bedeutung von \ aufheben also \\ benutzen, wenn du nur \ haben möchtest.
Eben nicht - hab ich doch geschrieben?
Es kann eine Sonderfunktionen aufheben, wenn das darauf folgende Zeichen eine implizite Sonderfunktion hat.
Hier ist das aber nicht der Fall.
Hier versucht das \ eine explizite Sonderfunktion zu aktivieren, die es aber nicht gibt.
using System;
class Prog{
public static void Main(string[] args){
Console.WriteLine("Test \\ blah"); //normaler String
Console.WriteLine(@"Test \ blah"); //Stringliteral
Console.ReadKey();
}
}
Ein Backslash ist ein Escapezeichen
In einer Stringzuweisung wird muss ein Backslash verdoppelt werden um als Textzeichen erkannt zu werden.
In C# wird ein kompletter String als Literal ausgewertet, wenn man der Zuweisung ein @ voranstellt. Dann wird der String so dargestellt, wie er im Code geschrieben wurde.
Das \ wird für die Escape-Sequenz (kann man googlen, wenn man den Begriff kennt ;-)) benötigt um andere Sachen darzustellen (z.B. einen Zeilenvorschub). Um ein\ darzustellen, musst du es selber "escapen", also \\ schreiben.
Nein.
Nur, wenn das nachfolgende Zeichen per Default eine Funktion hat, deaktiviert es diese Funktion. Also der Backslash selber und das einfache bzw. doppelte Anführungszeichen
Es *aktiviert* Sonderfunktionen der nachfolgenden Zeichen, doch in diesen Fällen haben diese nachfolgenden Zeichen einfach keine Sonderfunktionen.
Microsoft erlaubt beide Slashes.