问题标签 [iformattable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6231 浏览

c# - IFormattable 的参考实现

IFormattable是否有一个很好的参考实现?我计划为我的对象至少有一个自定义IFormatProvider,并且我想确保对于传递给IFormattable.ToString(string, IFormatProvider).

到目前为止我所拥有的:

但似乎还有其他潜在的情况应该包括在内,即:

  1. 如果formatProvider为空,我应该回退到this.ToString()吗?
  2. 如果formatProvider.GetFormat(typeof(ICustomFormatter))返回null,我应该抛出一个特殊的异常吗?

任何博客文章/代码示例/MSDN 参考都表示赞赏。

0 投票
3 回答
2113 浏览

c# - 带有 IFormattable 参数的函数不接受字符串

我有一个处理字符串输入的函数。

我在很多地方都调用了这个,我将 guid 转换为这样的字符串:

我真正想要的是接受任何可以转换为字符串的对象类型作为输入。所以我尝试修改函数如下:

这意味着我所有的调用都更简单:

它适用于所有具有 .ToString 方法的对象类型;除了字符串:)

如果我尝试将字符串传递给函数,则会收到以下编译错误:

这看起来很奇怪,因为 String 有一个 ToString() 方法。

为什么这不起作用?

0 投票
0 回答
20 浏览

c# - IFormattable 在使用格式时返回错误的值

我尝试使用 IFormattable 和 String.Format 格式化 HexaDeciamal 格式的值。但两者都返回不同的值。请建议一些格式来获取像 String.Format 这样的值。代码 :

如果您有任何疑虑,请告诉我。

单击此处获取示例

0 投票
1 回答
85 浏览

c# - 可以对内置类型的 object.ToString() 和 IFormattable.ToString(string, IFormatProvider) 之间的关系做出任何假设吗?

我正在为聚合记录编写一些字符串输出格式化代码(想想 CSV 格式输出)。我正在尝试编写它,以便它通过接口利用许多类型的内置字符串格式化功能IFormattable.ToString(string, IFormatProvider),除了简单的object.ToString().

为了减少代码重复,最好能够对object.ToString()和之间的关系做出一些假设IFormattable.ToString(string, IFormatProvider)

例如,可以依靠它来假设ToString() == ToString(null, null)吗?是否有维护该映射的默认文化或格式提供程序?还是两者之间没有必然的关系?

0 投票
2 回答
21162 浏览

c# - String、FormattableString、IFormattable 的区别

FormattableString已在 C# 6.0 中引入。由于我们可以使用stringobject 使用相同的字符串格式,为什么需要使用FormattableStringor IFormattable。三者有什么区别?

我的代码

最重要的是那里产生相同的结果。IE'Hello Pravin'.

如果有人对此有深入的了解,我能否得到更详细的答案。

0 投票
1 回答
4770 浏览

c# - C#中的自定义字符串格式化程序

C#中的字符串格式化;

我可以使用它吗?是的。

我可以实现自定义格式吗?不。

我需要写一些东西,我可以将一组自定义格式选项传递给string.Format,这将对特定项目产生一些影响。

目前我有这样的事情:

但我希望能够对那个项目做一些事情:

我知道我可以做类似的事情.ToUpper().ToLower()等等,但我需要用字符串格式来做。

我一直在研究类似的东西IFormatProviderIFormattable但我真的不知道它们是否是我应该使用的东西,或者如何实现它们。

谁能解释我如何解决这个问题?

基本原理(以防万一你想知道......)

我有一个小程序,我可以在其中输入一组以逗号分隔的值和一个模板。string.Format这些项目与创建输出的模板一起传递给。我想提供模板格式选项,以便用户可以控制他们希望如何输出项目。