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

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

関連記事

VisualStudioで文字列の検索をソリューション内やプロジェクト内で行う方法

<目次> (1) VisualStudioで文字列の検索をソリューション内やプロジェクト内で行う方法  (1-1) 検索方法   (1-1-1) 「検索と置換」画面を開く   (1-1-2) 検索条件 …

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

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

no image

C#でコンソールにパスワード入力する際のマスキング処理の実装例のご紹介

  <目次> (1) C#でコンソールにパスワード入力する際のマスキング処理の実装例のご紹介  (1-1) 構文  (1-2) サンプルプログラム (1) C#でコンソールにパスワード入力す …

C#のスレッド(Thread)とは?概要やサンプルプログラムをご紹介

  <目次> (1) C#のスレッド(Thread)とは?概要やサンプルプログラムをご紹介  (1-1) 概要   (1-1-1) スレッドのライフライクルについて   (1-1-2) ma …

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

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

  • English (United States)
  • 日本語
Top