我们希望像往常一样实现自定义格式化程序,最好使用 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;
但这看起来就像糟糕的设计(采用一个接口,然后强耦合它)。
我错过了一些特殊的用例吗?