Frage C # '@' vor einem String [Duplikat]


Mögliche Duplikate:
Was ist das @ vor einem String für .NET? 

Ich fand das in einem C # Lernbuch

DirectoryInfo dir = new DirectoryInfo(key.Key.ToString() + @":\");

Das Buch erklärte jedoch nicht, wofür das '@' Symbol steht. Ich habe versucht zu suchen MSDN C # -Operatoren aber es ist nicht dort aufgeführt. Ich kann mir vorstellen, dass es dem Entwickler erlaubt, einem '\' nicht zu entkommen oder keine Escape-Sequenzen zu haben?

Was ist das für und warum sollte ich verwenden? @":\" Anstatt von ":\\"?

Danke für die Hilfe

Bearbeiten: Siehe den Kommentar unten für eine ähnliche Frage


62
2018-02-02 19:53


Ursprung


Antworten:


Es bedeutet, die Zeichenfolge wörtlich zu interpretieren (das heißt, Sie können keine Zeichen innerhalb der Zeichenfolge ausschließen, wenn Sie das Präfix @ verwenden). Es verbessert die Lesbarkeit in Fällen, in denen es verwendet werden kann.

Wenn Sie beispielsweise mit einem UNC-Pfad arbeiten:

@"\\servername\share\folder"

ist schöner als das:

"\\\\servername\\share\\folder"

113
2018-02-02 19:54



Es bedeutet auch, dass Sie reservierte Wörter als Variablennamen verwenden können

sagen Sie, dass Sie eine Klasse namens class wollen, da class ein reserviertes Wort ist, können Sie stattdessen Ihre Klasse class aufrufen:

IList<Student> @class = new List<Student>();

54
2018-02-02 19:56



Das Voranstellen der Zeichenfolge mit einem @ zeigt an, dass sie als ein Literal behandelt werden sollte, d. H. Kein Entweichen.

Wenn Ihre Zeichenfolge beispielsweise einen Pfad enthält, würden Sie dies normalerweise tun:

string path = "c:\\mypath\\to\\myfile.txt";

Mit dem @ können Sie dies tun:

string path = @"c:\mypath\to\myfile.txt";

Beachten Sie das Fehlen von doppelten Schrägstrichen


13
2018-02-02 19:55



Als Randnotiz sollten Sie auch bedenken, dass "entkommen" bedeutet, "den Schrägstrich als Indikator für Sonderzeichen zu verwenden". Sie können ein Zeilenende in eine Zeichenkette schreiben, die das tut, zum Beispiel:

String foo = "Hello\

There";

6
2018-02-02 19:58



Was ist das für und warum sollte ich @ ": \" anstelle von ": \" verwenden?

Denn wenn du einen langen Stich mit vielen hast \ Du musst ihnen nicht alle entkommen.


1
2018-02-02 19:55