Rainbow Planet

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

C#

C#で文字列の前に付いてるアットマーク「@」について

投稿日:2020年12月12日 更新日:

<目次>

(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) 主な用途

例えば「正規表現」の定義などを文字列化する場合など、エスケープ処理が非常に手間になるケースなどで活躍します。

例えば、次の正規表現は単語群の中から「3文字~40文字の範囲で、あらゆる単語を取得(スペースや記号を含んでもOK)」を取得するための正規表現ですが、通常のstringで定義すると多くのバックスラッシュ「\」をエスケープする必要があり、手間になります。しかし「@」を付ける事で一発でエラーが解消します。
 
(図121)①
「@」を付けないとエスケープしていない部分はエラーになる

(図121)②
「@」を付ければそのままでOK。

あるいは、複数行に跨る文字列などを扱うケースにも便利です。

(図122)①

(図122)②

目次にもどる

(1-3) 注意点

注意すべきは、ダブルクォーテーション「”」のみは無視されない例外文字となっており、前に更にダブルクォーテーション「”」を追加する事でエスケープする必要があります。

(例)

//文字列
@"This symbol "" is a double quote"
//評価値
// ""はエスケープ処理により"として表示されます。
This symbol " is a double quote

(図131)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-C#

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

C#のintに?「はてな」(question mark)が付いている意味について

<目次> (1) C#のintに?「はてな」(question mark)が付いている意味について  (1-1) 「int?」とは?  (1-2) 「int?」の型について  (1-3) 「int?」 …

Xamarin.Formsのプロジェクトを新規作成する手順

<目次> (1) Xamarin.Formsのプロジェクトを新規作成する手順  (1-1) Xamarin.Formsプロジェクトの作成   (1-1-1) プロジェクト新規作成   (1-1-2) …

C#からDB接続でSQLServerに接続してSELECT文を実行する方法

<目次> (1) C#からDB接続する方法~SQLServerへの接続プログラム例もご紹介~  (1-1) 構文(DB接続)  (1-2) 構文(SELECT文発行)  (1-3) サンプルプログラム …

C#のvarとは?型を調べる方法や制約事項についてもご紹介

<目次> (1) C#のvarとは?型を調べる方法や制約事項についてもご紹介  (1-1) C#のvarとは?  (1-2) サンプルプログラム:varの基本動作確認#1  (1-3) サンプルプログ …

C#のコンソールアプリで引数を与えて実行する方法

<目次> (1) C#のコンソールアプリで引数を与えて実行する方法  (1-1) 設定箇所  (1-2) サンプルプログラム  (1-3) サンプルプログラムの補足 (1) C#のコンソールアプリで引 …

  • English (United States)
  • 日本語
Top