我们希望像往常一样实现自定义格式化程序,最好使用来自微软的接口,所以我找到了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;但是这看起来就像糟糕的设计(拿一个接口,然后强耦合它)。
我是不是漏掉了一些特殊的用例?
发布于 2013-11-25 23:36:45
IFormatProvider是为了向您的自定义格式化程序提供特定于区域性和全局格式的信息。当然,取决于您的自定义格式化程序正在做什么,您可能不需要任何这些信息,但是如果您正在格式化货币或浮点数或日期,那么您可能很想要它。
https://stackoverflow.com/questions/20205664
复制相似问题