You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 09:40:30