参考
この記事は、以下の動画を参考にしています。詳しくは、動画をご覧ください。
IFormattable
インターフェイスのヘルプも、参考にしてください。
動機
ユーザー定義型を文字列表現に変換する際、DateTime
型のように、書式指定子を含んだフォーマットを指定したい。
このためには、ユーザー定義型でIFormattable
インターフェイスを実装する。
IFormattableインターフェイス
IFormattable
を実装するユーザー定義型では、以下のメソッドを実装する必要がある。
string ToString(string? format, IFormatProvider? formatProvider);
-
format
に応じて、オブジェクトの値を文字列表現に変換するよう、メソッドを記述する(動画では、2つの例を実装しています。参考にしてください) -
format
にどのような書式指定子を含めることができるかは、自由に決めてよい - 数値の小数点など、カルチャーに依存した文字列表現へ変換する際には、
formatProvider
を利用する
利用
-
ToString
メソッドを呼ぶ
Console.WriteLine(obj.ToString("XXX", CultureInfo.CurrentCulture));
- 複合書式指定を利用する
Console.WriteLine(string.Format("{0:XXX}", obj));
注意
- 書式指定子として
G
(General)は、必ず実装すること -
format
にnull
が渡された場合にも、対応すること