重複の可能性:
C# の文字列の前にある @ は何ですか?
これは私が長い間疑問に思っていたことですが、決して理解しようとはしませんでした。サードパーティのライブラリをダウンロードすると@
、文字列の前に記号を使用した文字列の割り当てがよく見られます。
string myString = @"Some text";
でも、単純にやるなら全然違いがないようです
string myString = "Some text";
それで、何をしているの@
ですか?
重複の可能性:
C# の文字列の前にある @ は何ですか?
これは私が長い間疑問に思っていたことですが、決して理解しようとはしませんでした。サードパーティのライブラリをダウンロードすると@
、文字列の前に記号を使用した文字列の割り当てがよく見られます。
string myString = @"Some text";
でも、単純にやるなら全然違いがないようです
string myString = "Some text";
それで、何をしているの@
ですか?
これは逐語的な文字列リテラルを意味し、特定の文字をエスケープする必要がないようにします。
string foo = @"c:\some\path\filename.exe";
対:
string foo = "c:\\some\\path\\filename.exe";
string reason = @"this string literal mea\ns something different with an @ in front than without";
@ がない場合、上記の文字列は「手段」という単語の「n」ではなく改行文字になります。@ を使用すると、「手段」という言葉は見た目と同じように見えます。この機能は、ファイル パスなどに特に役立ちます。
string path = @"C:\Users\LookMa\NoDoubleSlashes.txt";
これは逐語的な文字列リテラルです。@"C:\"
の代わりに のようなことを行うことができ"C:\\"
、コンパイラによって解析されるべきではないバックスラッシュがよく使用されるため、正規表現やファイル パスで特に役立ちます。詳細については、ドキュメントを参照してください。
この場合、違いはありません。'@' でできることは、エスケープ バックスラッシュを省略できることだけです。「@」を使用し、文字列に二重引用符を含めたい場合は、二重引用符を二重にする必要があります。