FormattableString
は、C# 6.0で追加されたクラスである。
補間文字列を使用する際、デフォルトではstring
(System
名前空間)になるが、FormattableString
(System
名前空間)として作成することもできる。
string s = $"string";
var vs = $"varを使ってもstring";
FormattableString fs = $"明示的に型を指定すればFormattableString";
FormattableString
には、文字列の組み立てを助ける機能が含まれているので、カルチャに応じて文字列を組み立てる必要がある際に重宝する。
以下はFormattableString
の使用例。
using System;
using System.Globalization;
public class Program
{
public static void Main()
{
FormattableString fs = $"{Math.PI}";
Console.WriteLine(fs); // (CurrentCultureがen-USなら) 3.14
Console.WriteLine(ToGerman(fs)); // 3,14
}
public static string ToGerman(FormattableString src)
{
return string.Format(
CultureInfo.CreateSpecificCulture("de-DE"),
src.Format,
src.GetArguments());
}
}
上記サンプルで、src.Format
とsrc.GetArguments()
は、どちらもFormattableString
の機能である。