传递给基元类型的ToString(…IFormatterProvider…)应该是CultureInfo或者是NumberFormatInfo,最终只能是NumberFormatInfo。
有ICustomFormatter这么个接口,但是没有一般性的IFormatter接口。因此一般来说IFormatterProvider实例返回的对象仅仅是一个普通的Object,这个Object中蕴含的某种格式化的信息,而如何利用这种信息只有使用这个格式化信息的对象知道。而一个对象只能使用有限中格式化信息,因此有可能出现传递的包含格式化信息Object不符合要被格式化信息要求的情况,这时此格式化信息将被某种默认的格式化信息取代。
不是所有接受IFormatterProvider接口的地方都支援ICustomFormatter的使用。目前知道String.Format和StringBuilder.AppendFormat支持。也就是说对字符的格式化支持使用自定义的Formatter。
yes im back!