2020年10月26日
川俣晶の縁側ソフトウェアC# コーディング How Tototal 1110 count

【入門級】書式指定文字列の出番

Written By: 川俣 晶連絡先

なぜ書式指定はあるの? §

 Console.WriteLine($"{……}")と書けば簡単なのに、なぜConsole.WriteLine("{0}",……)のような書式があるのでしょうか。順番を指定する文字が必要とされる分だけ冗長でもっさりしているように見えます。

 実はこれ、語順が変化する国際化が絡むと便利なのです。順番を指定できると言うことは、特定の語句をはめ込む場所が前後に移動しても構わないことを意味するからです。

 サンプルソースを見ると具体的な使い方が分かるでしょう。

 実際には、"Tom","School"のような語句も各国語で差し替えて使います。

 たいていそれらは文字列リソースに埋め込まれます。

 そうすると、ローカライズは文字列リソースの差し替えだけで済むようになります。

 文字列に埋め込む場所が前後しても対応できます。

罠の数々 §

  • Console.WriteLine("{0}+{0}={2}", 1, 2, 3);はエラーにならず、結果は1+1=3になってしまうことに注意しよう。

参考リンク §

Console.WriteLine メソッド

String.Format メソッド

 コンソールに出力するときはConsole.WriteLine メソッドだが、ほとんど同じ操作を文字列に対して行うString.Format メソッドもある。これを使うと、ほとんど何に対してでも書式整形の機能を利用できる。上記のリンクから使い方を確かめてみよう。

リポジトリ §

https://github.com/autumn009/cshowto

Format §

using System;

class Program

{

    private static void sub(string format)

    {

        Console.WriteLine(format,"Tom","School");

    }

    static void Main()

    {

        sub("{0} goes to {1}.");

        sub("{1} へ {0} は行きました。");

    }

}

実行結果

Tom goes to School.

School へ Tom は行きました。

Facebook

COOL C# CREW

C#ハウツー連載の解説増量、カラーのソース、新規書き下ろし追加の読みやすい単行本はこちら。

C#ハウツー: 逆引き入門・こんな機能はどう書くの?
キーワード【 川俣晶の縁側ソフトウェアC# コーディング How To
【C# コーディング How To】の次のコンテンツ
2020年
10月
27日
【入門級】キーが押されたら止まるプログラム
3days 0 count
total 1345 count
【C# コーディング How To】の前のコンテンツ
2020年
10月
25日
【入門級】文字列定数の3つの書き方を比較する
3days 0 count
total 940 count

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

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

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

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

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

https://mag.autumn.org/tb.aspx/20201026083327
サイトの表紙【C# コーディング How To】の表紙【C# コーディング How To】のコンテンツ全リスト 【C# コーディング How To】の入手全リスト 【C# コーディング How To】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

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