2021年11月09日
川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!total 802 count

文字列の基礎 (文字列定数): C#には3つの書き方がある

Written By: 川俣 晶連絡先

この章のテーマ §

 文字を扱うための基礎中の基礎、文字列定数について説明します。

 文字列定数が分かればソースコード中に決まり切った文字列を書き込むことができます。

前提知識 §

Console.Writeメソッド, 変数の基礎, int型, 比較演算子, bool型

解説 §

 文字列型(string, System.String)の値をソースコード上に直接書き込みたいことはよくあります。

 個人名を書き込みたいことは多くありませんが、"当選者"という言葉なら書き込みたいことがあります。誰の情報を扱うときにも"当選者"は同じものを出力するからです。

 最初のプログラムとして有名なハロー・ワールドを書く場合にも、"Hello, World!"という文字列はソースコードに書き込まねばなりません。

 さて、ここで重要なポイントは「C#には文字列定数の書き方が3つある」という点です。

 なぜ3つもあるのでしょうか。

 実は文字列定数には避けられない制約があって、たった1つの十分なやり方は十分ではないからです。

 どんな制約でしょうか。

 それは、【特定の機能を与えられた文字は文字列に書き込めない】ということです。

 だから、エスケープという方法を使い、特定の文字の組み合わせで別の文字を表すします。

 たとえば、通常の文字列なら、区切りとなる"記号だけは文字列に含めることができません。そこで、"を含めたいときは\"という2文字を書き込むようにします。\記号自身は\\で表します。

 しかし、\を多用する場合はとても不便でソースコードも見にくくなります。

 そこで、@を前置する文字列定数を使う場合は制約無しに\を書けるようになっています。"を書きたい時だけ""という2文字で表します。

 もう1つの$を前置する文字列は別の役割を持っています。波括弧{}で囲まれた式は式の値に置き換えられるという機能性を持っています。しかし、波括弧{}を多用する文字列では不便なので、通常の文字列も必要とされます。

 つまりまとめると、C#の文字列定数の書き方は3つありますが、それぞれに適した用途があり、たった1つにはまとめられません。上手く使い分けて行きましょう。

罠の数々 §

 文字列定数とは似て非なる文字定数が存在することに注意しましょう。

 文字定数は'で区切り、char/String.Char型に対応します。

 そして基本的に1文字しか書くことができません。(1文字に対応しない場合もある)

 \記号は円記号に見える場合とバックスラッシュ記号に見える場合がありますがどちらも同じものです。

参考リンク §

文字列 (C# プログラミング ガイド)

サンプルソース: stringConstans §

// 通常文字列

Console.WriteLine("He said, \r\n\"GOOD!\".");

// @前置

Console.WriteLine(@"He said, 

""GOOD!"".");

// $前置

int a = 1;

int b = 2;

Console.WriteLine($"{a}足す{b}は{a+b}");

実行結果 §

He said,

"GOOD!".

He said,

"GOOD!".

1足す2は3

リポジトリ §

https://github.com/autumn009/CSharpPrimer2

練習問題 §

 以下のプログラムの実行結果を予測してみよう。

Console.WriteLine("\"" == @"""");

[[解答]]

Facebook

キーワード【 川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!
【new_C#入門・全キーワード明快解説!】の次のコンテンツ
2021年
11月
11日
変数の基礎: データを入れておく小さな入れ物
3days 0 count
total 971 count
【new_C#入門・全キーワード明快解説!】の前のコンテンツ
2021年
11月
08日
値型と参照型: C#のデータで間違わない切り札
3days 0 count
total 1011 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20211109095038
サイトの表紙【new_C#入門・全キーワード明快解説!】の表紙【new_C#入門・全キーワード明快解説!】のコンテンツ全リスト 【new_C#入門・全キーワード明快解説!】の入手全リスト 【new_C#入門・全キーワード明快解説!】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.