(1) C#で文字列の前に付いてるアットマーク「@」について
(1-1) 概要
(1-2) 主な用途
(1-3) 注意点
(1) C#で文字列の前に付いてるアットマーク「@」について
(1-1) 概要
文字列の前に付いている「@」は逐次的リテラル文字列(verbatim string literal)と呼ばれるものです。これを付ける事で、通常はエスケープシーケンスとして扱われる文字(バックスラッシュ「\」など)が無視され、通常の文字と同じ扱いになります。
例をご紹介しますと、例えば@を使う事で次の2つの文字列は同じ意味になります。
@"C:\ParentFolder\ChildFolder\"; "C:\\ParentFolder\\ChildFolder\\";
(サンプルPG)
上記の例を簡単なC#プログラムで実機確認しました。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FileExistanceCheck { class Program { static void Main(string[] args) { string test1 = @"C:\ParentFolder\ChildFolder\"; string test2 = "C:\\ParentFolder\\ChildFolder\\"; Console.WriteLine("#### value of test1= " + test1); Console.WriteLine("#### value of test2= " + test2); Console.Read(); } } }
(サンプルPG実行結果)
(図111)
同じ値が出力されている。
> 目次にもどる
(1-2) 主な用途
例えば「正規表現」の定義などを文字列化する場合など、エスケープ処理が非常に手間になるケースなどで活躍します。
「@」を付けないとエスケープしていない部分はエラーになる
(図121)②
「@」を付ければそのままでOK。
あるいは、複数行に跨る文字列などを扱うケースにも便利です。
(図122)①
(図122)②
(1-3) 注意点
注意すべきは、ダブルクォーテーション「”」のみは無視されない例外文字となっており、前に更にダブルクォーテーション「”」を追加する事でエスケープする必要があります。
//文字列 @"This symbol "" is a double quote" //評価値 // ""はエスケープ処理により"として表示されます。 This symbol " is a double quote
(図131)