问题描述
我想请问一下IFormattable接口,实现它的时候,里面的第二个参数publicstringToString(stringformat,IFormatProviderformatProvider)IFormatProviderformatProvider是做什么的。。我写了个东西,并么有使用到IFormatProviderformatProvider,也是可以正常运行的啊。publicstringToString(stringformat,IFormatProviderformatProvider){switch(format){casenull:case"N":returnToString();case"F":returna;case"L":return"博物馆";case"A":returnString.Format("{0}{1},{2};starts:{3},wins:{4}","白银市",a,"sdf",a,a);case"D":returnstring.Format(formatProvider,"({0},{1})","这是formatProvider","hehe");default:thrownewFormatException(String.Format("Format{0}notsupported",format));}如上,我并没有使用到formatProvider参数,但是我接口还是完成了格式,那么formatProvider参数使用来做什么的。麻烦使用通俗易懂的话来说明。
解决方案
解决方案二:
1、你不使用formatProvider,可以正常转换,因为String.Format有一个参数的重载方法2、IFormatProvider是格式参数,目的是将指定字符串中的一个或多个格式项替换为指定对象的字符串表示形式比如29,可以使用IFormatProvider,输出29.00(保留两位小数)、29%等
解决方案三:
解释的我还是看不明白啊。。自己顶一下。谁能给我点详细的回答,通熟易懂点的啊。