C#のプログラムを見ると以下のようなString変数に文字列を代入するとき、
アットマーク(@)が先頭についていることが多いですよね。
これは、エスケープ文字(\)を入力しなくても良いという利点がありますが、副作用?もあります。
以下にサンプルコードと実行結果を紹介します。
以下に@があるHello world文字列と@が無いHello world文字列を定義し、
メッセージボックスに文字列を表示します。
using System; using System.Windows.Forms; class Program { static void Main(string[] args) { String s1 = @"Hello\nworld\n"; String s2 = "Hello\nworld\n"; MessageBox.Show(s1, "s1"); MessageBox.Show(s2, "s2"); } }
以下のキャプチャの通り、@をつけると、\nが改行と認識されずそのまま表示されます。
@がない場合は、\nが改行として認識され表示されます。
以上、C#で文字列定義の先頭に@が付いている場合の動作説明でした。