いつものように、Microsoft のインターフェイスを使用するのが最適なカスタム フォーマッタの実装を検討しているので、ICustomFormatter を見つけました。
http://msdn.microsoft.com/en-us/library/system.icustomformatter.format(v=vs.110).aspx
ただし、インターフェイスの署名はこれを提供します。
public string Format(string format, object arg, IFormatProvider formatProvider)
{
}
何のために formatProvider を使うのでしょうか? どの formatProvider がこの ICustomFormatter をロードしたかについて懸念する理由の良い例をまだ見ていません。
私が見つけた唯一の例は、次のようなものです。
http://www.codeproject.com/Articles/6533/Custom-String-Formatting-in-NET
if (formatProvider is NumberFormatInfo)
if (((NumberFormatInfo)formatProvider).UseDiacritic)
c = diacritic;
しかし、これはひどい設計のように見えます (インターフェースを取り、それを強く結合します)。
特別なユースケースがありませんか?