[C#] Stringの補間式(interpolation)


Devlopment note / C#    作成日付 : 2020/04/27 20:39:57   修正日付 : 2020/04/27 20:39:57

こんにちは。明月です。


この投稿はC#でStringの補間式(interpolation)に関する説明です。

最近、C#のコード標準でStringの補間式に関して説明がありました。

既存、C#でStringのフォーマットを使うとString.Format関数を利用しましたが、それが数字で「{0},{1}」で表現するので、可読性が悪いです。

なので、もっと可読性を上がるため、に補間式(interpolation)があり、もっとフォーマットをしやすく表現できます。

link - https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated


StringでStringの補間式を使うために、ダブルクォートの前に「$」を付けて設定することで使えます。

using System;
namespace NewtonsoftExample
{
  class Program
  {
    // 実行関数
    static void Main(string[] args)
    {
      // 変数宣言
      string name = "Hello world!";
      var date = DateTime.Now;
      // 既存のString.formatだ。
      Console.WriteLine("{0}! Today is {1}, This time is {2:HH:mm}.", name, date.DayOfWeek, date);
      // Stringの補間式(interpolation)	
      Console.WriteLine($"{name}! Today is {date.DayOfWeek}, This time is {date:HH:mm}.");
      Console.ReadKey();
    }
  }
}


Stringのの補間式(interpolation)は下記とおりになります。

{<interpolationExpression>[,<alignment>][:<formatString>]}
要素 説明
interpolationExpression 形式化する結果を生成する表現式です。nullの結果のライン表現はString.Emptyです。
alignment 補間表現式の結果の文字列で最小文字数を定義する定数式です。正の場合は、文字列表現が右揃えされます。負の場合は左揃えです。
formatString 式の結果タイプによってサポートされる形式の文字列です。
using System;
namespace NewtonsoftExample
{
  class Program
  {
    // 実行関数
    static void Main(string[] args)
    {
      // 文字列表現が右揃えされます。負の場合は左揃えです。
      Console.WriteLine($"|{"Left",-7}|{"Right",7}|");
      const int FieldWidthRightAligned = 20;
      // PIの値
      Console.WriteLine($"{Math.PI,FieldWidthRightAligned}");
      // 3桁まで表現する。
      Console.WriteLine($"{Math.PI,FieldWidthRightAligned:F3}");
      Console.ReadKey();
    }
  }
}


補間表現式は三項演算子でも計算可能です。

using System;
namespace NewtonsoftExample
{
  class Program
  {
    // 実行関数
    static void Main(string[] args)
    {
      int data = 0;
      // 三項演算子
      Console.WriteLine($"{(data == 0 ? "Zero" : "Number")}");
      Console.ReadKey();
    }
  }
}


中括弧の表現は中括弧を重ねることで表現できます。

using System;
namespace NewtonsoftExample
{
  class Program
  {
    // 実行関数
    static void Main(string[] args)
    {
      // 中括弧表現
      String data = "Curly braces";
      Console.WriteLine($"{{{data}}}");

      Console.ReadKey();
    }
  }
}


ここまでC#でStringの補間式(interpolation)に関する説明でした。


ご不明なところや間違いところがあればコメントしてください。

最新投稿