C#のStringに@をつける理由

@なぜつける?

String の先頭に@をつける書き方

String path = @”filepath\file.db”;

といった書き方を見かけます。

なぜ@をつけるのか?疑問に思ったというか、こんな基本的な事を今更ながらちゃんと調べてみました。

逐語的文字列リテラル

リテラル = 「文字通り」「字義通り」の意味

逐語 = 解釈・翻訳などで、原文の一語一語に忠実に合わせて行くこと。

そのままの文字通り解釈する文字列という意味が逐語的文字列リテラルとなります。

結局@をつけてどうなるの?

@をつける事で、逐語的文字列リテラル として解釈されるようになります。

通常「\」はエスケープシーケンスです。ファイルパスなどで「\」を利用したければ、エスケープシーケンスを2つ書く必要があります。

例 String path = “c:\\filepath\\file.db”;

これに、@をつけ、逐語的文字列リテラルとして指定すると

例 String path = @”c:\filepath\file.db”;

と書けるようになるわけです。