こんにちは。たいら(@tairaengineer2)です。
この記事では、C#でコンソールでstring.Formatと文字列補間で表示させるやり方を解説します。
スポンサーリンク
- 前提条件
- string.Formatと文字列補間はどっちを使うべきか
- string.Formatと文字列補間を解説するプログラム
- C#プログラム
- 実行結果
- 解説
- まとめ:string.Formatより文字列補完を使おう
前提条件
この記事では、Visual Studio 2017 Communityを使っています。
インストールの仕方は、下の記事をご参考ください。
string.Formatと文字列補間はどっちを使うべきか
文字列を作成する場合は、文字列補間を使った方が良いです。
理由は、以下の2点あります。
- 簡単
- エラーを発見しやすい
ただしC#のバージョンが6以降である場合のみです。
では、それぞれ解説します。
string.Formatとは
指定された形式に基づいてオブジェクトの値を文字列に変換し、別の文字列に挿入します。
String.Format Method (System) | Microsoft Docsから引用させて頂きました
書き方は
string.Format("{0},{1}", aaa, bbb)
どこに何が入るかと言いますと
- {0}:aaa
- {1}:bbb
という風に入っていきます。
文字列補間とは
$ 特殊文字は、リテラル文字列を挿入文字列として識別します。
挿入文字列は、挿入式が含まれている可能性がある文字列リテラルです。
挿入文字列が結果文字列に解決されると、挿入式を含む項目は、式の結果の文字列表現によって置き換えられます。 この機能は C# 6 以降のバージョンの言語で使用できます。
$ - 文字列補間 (C# リファレンス) | Microsoft Docsから引用させて頂きました
書き方は
$"{aaa},{bbb}"
string.Formatと文字列補間を解説するプログラム
プログラムはコンソールに文字列を表示するだけのプログラムです。
コンソールプロジェクトを作成するやり方は下の記事をご参考ください。
C#プログラム
using System;
/// <summary>
/// string.Formatと文字列補完を練習するクラス
/// </summary>
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string name = "田中";
int age = 20;
Console.WriteLine("----------string.Format----------");
Console.WriteLine(string.Format("名前は{0},年齢は{1}歳", name, age));
Console.WriteLine("----------文字列補間----------");
Console.WriteLine($"名前は{name},年齢は{age}歳");
}
}
}
実行結果
コンソール画面を表示させます。
解説
string.Formatと文字列補間は、書き方は全然異なります。
が、同じものが表示されています。
----------string.Format----------
名前は田中,年齢は20歳
----------文字列補間----------
名前は田中,年齢は20歳
では、それぞれ解説します。
string.Format
string.Formatの仕組みは、このようになっています。
順番どおりに入って、文字が作成されています。
{0}の部分にnameが入り、{1}の部分にはageが入ります。
だから、もしnameとageを逆に書いてしまった場合
名前は20,年齢は田中歳
という文字列が表示されてしまいます。
またもしstring.Formatで下のように変数が足りなかった場合
Console.WriteLine(string.Format("名前は{0},年齢は{1}歳", name));
コンパイルエラーにならず、実行できてしまいます。
実行すると
----------string.Format----------
ハンドルされていない例外: System.FormatException: インデックス (0 ベース) は 0
以上で、引数リストのサイズよりも小さくなければなりません。
場所 System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, S
tring format, ParamsArray args)
場所 System.String.FormatHelper(IFormatProvider provider, String format, Para
msArray args)
場所 System.String.Format(String format, Object arg0)
場所 ConsoleApp1.Program.Main(String[] args) 場所 C:\Users\○○○○○○\source\re
pos\ConsoleApp1\ConsoleApp1\Program.cs:行 18
続行するには何かキーを押してください . . .
と、このように実行するまでどこにエラーがあるか分かりません。
文字列補間
文字列補間は仕組みは、このようになっています。
[$](ドルマーク)を先頭につけて、表示したい変数を入れるだけなので、string.Formatより文字列補間の方が簡単に文字列を作れます。
エラーも見つけやすいです。
たとえば[age]を宣言していない場合
このようにエラーが表示されます。
また、string.Formatと違って文字列補間はインデックスが無いため、書き間違いも起こりにくいです。
なので、string.Formatより文字列補完の方がエラーを見つけやすいです。
スポンサーリンク
まとめ:string.Formatより文字列補完を使おう
以上が、string.Formatと文字列補完の解説をしました。
使っているC#のバージョンが6以降の場合は、文字列補間を使うようにしましょう!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
ほかにもC#勉強記事を書いてます。
よければご参考ください。
【C#】文字列を数値に変換できるか調べるTryParseメソッドの使い方
【C#】コード:IDE1006、説明:名前指定の規則違反: これらの単語は、大文字で始まらなければなりません、が出たときの対処方法
今までブログで書いたC#の解説記事のまとめは、こちらをご参考ください。