Rainbow Engine

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

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

関連記事

ASP.NETのRazor入門~Razorとは?や使い方をご紹介

<目次> (1) ASP.NETのRazor入門~Razorとは?や使い方をご紹介  (1-1) Razorとは?  (1-2) 基本構文  (1-3) サンプルプログラム (1) ASP.NETのR …

ASP.NETのbootstrapとは?概要と入手・適用方法のご紹介

  <目次> (1) ASP.NETのbootstrapとは?概要と入手・適用方法のご紹介  (1-1) bootstrapとは?  (1-2) bootstrapの入手方法~プロジェクトへ …

C#のエラー「CS1069~このアセンブリへの参照を追加する事を検討してください」の対処方法+実際のソース例も掲載

<目次> (1) C#のエラー「CS1069~このアセンブリへの参照を追加する事を検討してください」の対処方法  (1-1) 発生状況・エラーメッセージ  (1-2) 原因  (1-3) 対処法 (1 …

ASP.NETのMVCとは?入門者向けの概要説明やHelloWorld

<目次> (1) ASP.NETのMVCとは?入門者向けの概要説明やHelloWorld  (1-1) ASP.NET MVC5とは?  (1-2) MVCのアーキテクチャ概要  (1-3) ASP. …

SOAP通信の仕組みやHTTPプロトコルとの違いなど

  <目次> (1) SOAP通信の仕組みやHTTPプロトコルとの違いなど  (1-1) SOAPとは?  (1-2) SOAPを構成する要素  (1-3) SOAPの通信の仕組み&HTTP …

  • English (United States)
  • 日本語
Top