自定义IFormatProvider调用ToString方法无效的技术咨询
自定义IFormatProvider调用ToString方法无效的技术咨询
最近我在研究IFormattable和IFormatProvider这两个接口,本来想着肯定还有其他方法能把数值123转成反转字符串"321",不过还是想用这两个接口来实现,毕竟更贴合C#的格式化规范。
首先得说明,C#里所有基础数据类型都实现了IFormattable接口,这个接口提供了如下方法:
public string ToString(string format, IFormatProvider formatProvider);
根据微软文档的说明,这个方法主要支持两种扩展场景:
- 你可以定义自己的格式字符串,用来格式化自定义类型
- 另外,你也可以定义自己的自定义格式提供器,用来提供特定文化、特定行业或专业场景下的格式化信息
按照这个逻辑,我应该能写出这样的代码:
// 期望输出 "321" string s = 123.ToString("Z", ReverseFormatProvider);
这里的"Z"是我自定义的格式字符串,ReverseFormatProvider是我自己编写的自定义格式提供器。
我已经跟着ICustomFormatter接口的示例去实现了,但遇到了问题(原内容未完整表述)...
备注:内容来源于stack exchange,提问作者user10316237
相关产品推荐
相关产品推荐

