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

如何在不传入IFormatProvider参数的情况下使用IParsable.Parse()?

解决IParsable解析无需显式传IFormatProvider参数的问题

IParsable接口定义的Parse方法强制要求两个参数:目标字符串和IFormatProvider?类型的格式提供器,所以你直接调用T.Parse(str)会触发编译错误。要实现无需调用者传入该参数的解析逻辑,只需在方法内部默认传入一个合法的IFormatProvider?值即可,两种常用方案如下:

  • 使用固定的不变文化(InvariantCulture),适合跨区域的通用解析场景:
public static T DifferentParse<T>(string str) where T : IParsable<T>
    => T.Parse(str, System.Globalization.CultureInfo.InvariantCulture);
  • 传入null,此时会使用当前线程的默认文化,适合依赖系统区域设置的场景:
public static T DifferentParse<T>(string str) where T : IParsable<T>
    => T.Parse(str, null);

以上两种方式都能让调用者仅传入字符串参数完成解析,无需暴露格式提供器参数。

内容的提问来源于stack exchange,提问作者Matto58

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:32:40