C言語出身のプログラマが、C#で書かれている文字列を見ると
1 |
string s = @"C:¥foo¥bar.txt"; |
とか書かれていて、この @ (アットマーク) って何だろう?って思ってしまいますね。
C#の@ (アットマーク) って何なんでしょうか?
C#の@ (アットマーク) の意味
C言語やC++、あるいはJavaで、string 文字列にファイルのパスを入れるには、次のようにしますね。
1 |
string s = "C:¥¥hoge¥¥foo¥¥bar.txt"; |
階層ディレクトリの区切りを、\\のように円マークを二個書きます。
ここで、最初の\は、エスケープシーケンスで、二個目の\がエスケープシーケンスではなくて、文字列としての\であることを正しく認識するために置かれます。
つまり、階層ディレクトリの場合、すべての階層で\をエスケープシーケンスでエスケープする必要がある訳です。
これってかなり面倒ですね。
一方、C#では、@ (アットマーク) を利用するとエスケープシーケンスを利用せずにパスの指定が可能になります。
具体的には以下のように記述します。
1 |
string s = @"C:¥hoge¥foo¥bar.txt"; |
こうすると、可読性が上がるばかりか、深い階層になったときにミスを犯す可能性が減りますね。
この @ を
@-quoated string
と呼びます。
どうです?
便利でしょ。
プログラミングの無料レッスン体験
約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp
<Codecampの特徴>
1 現役エンジニアによる指導
2オンラインでのマンツーマン形式の講義
3大手企業にも導入されている実践的なカリキュラム
↓無料体験レッスン実施中です。
コメント