1. ホーム
  2. c#

[解決済み] C#の文字列の前にある@は何ですか?

2022-03-15 22:32:17

質問

これはC#(あるいはVB.net)用の.NETの質問ですが、次の宣言の違いは何なのか、考えています。

string hello = "hello";

vs.

string hello_alias = @"hello";

コンソールでプリントアウトしても、長さのプロパティは同じで、違いはありません。

どのように解決するのですか?

として文字列をマークします。 逐語的文字列リテラル - として解釈されるような文字列があれば、それはすべて エスケープシーケンス は無視されます。

そこで "C:\\Users\\Rich" と同じです。 @"C:\Users\Rich"

ただし、1つだけ例外があり、ダブルクォートにはエスケープシーケンスが必要です。二重引用符をエスケープするには、二重引用符を2つ並べる必要があります。例えば @"""" は次のように評価されます。 " .