问题标签 [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.
c# - IFormattable 的参考实现
IFormattable是否有一个很好的参考实现?我计划为我的对象至少有一个自定义IFormatProvider
,并且我想确保对于传递给IFormattable.ToString(string, IFormatProvider)
.
到目前为止我所拥有的:
但似乎还有其他潜在的情况应该包括在内,即:
- 如果
formatProvider
为空,我应该回退到this.ToString()
吗? - 如果
formatProvider.GetFormat(typeof(ICustomFormatter))
返回null
,我应该抛出一个特殊的异常吗?
任何博客文章/代码示例/MSDN 参考都表示赞赏。
c# - 带有 IFormattable 参数的函数不接受字符串
我有一个处理字符串输入的函数。
我在很多地方都调用了这个,我将 guid 转换为这样的字符串:
我真正想要的是接受任何可以转换为字符串的对象类型作为输入。所以我尝试修改函数如下:
这意味着我所有的调用都更简单:
它适用于所有具有 .ToString 方法的对象类型;除了字符串:)
如果我尝试将字符串传递给函数,则会收到以下编译错误:
这看起来很奇怪,因为 String 有一个 ToString() 方法。
为什么这不起作用?
c# - IFormattable 在使用格式时返回错误的值
我尝试使用 IFormattable 和 String.Format 格式化 HexaDeciamal 格式的值。但两者都返回不同的值。请建议一些格式来获取像 String.Format 这样的值。代码 :
如果您有任何疑虑,请告诉我。
c# - 可以对内置类型的 object.ToString() 和 IFormattable.ToString(string, IFormatProvider) 之间的关系做出任何假设吗?
我正在为聚合记录编写一些字符串输出格式化代码(想想 CSV 格式输出)。我正在尝试编写它,以便它通过接口利用许多类型的内置字符串格式化功能IFormattable.ToString(string, IFormatProvider)
,除了简单的object.ToString()
.
为了减少代码重复,最好能够对object.ToString()
和之间的关系做出一些假设IFormattable.ToString(string, IFormatProvider)
。
例如,可以依靠它来假设ToString() == ToString(null, null)
吗?是否有维护该映射的默认文化或格式提供程序?还是两者之间没有必然的关系?
c# - String、FormattableString、IFormattable 的区别
FormattableString
已在 C# 6.0 中引入。由于我们可以使用string
object 使用相同的字符串格式,为什么需要使用FormattableString
or IFormattable
。三者有什么区别?
我的代码
最重要的是那里产生相同的结果。IE'Hello Pravin'.
如果有人对此有深入的了解,我能否得到更详细的答案。
c# - C#中的自定义字符串格式化程序
C#中的字符串格式化;
我可以使用它吗?是的。
我可以实现自定义格式吗?不。
我需要写一些东西,我可以将一组自定义格式选项传递给string.Format
,这将对特定项目产生一些影响。
目前我有这样的事情:
但我希望能够对那个项目做一些事情:
我知道我可以做类似的事情.ToUpper()
,.ToLower()
等等,但我需要用字符串格式来做。
我一直在研究类似的东西IFormatProvider
,IFormattable
但我真的不知道它们是否是我应该使用的东西,或者如何实现它们。
谁能解释我如何解决这个问题?
基本原理(以防万一你想知道......)
我有一个小程序,我可以在其中输入一组以逗号分隔的值和一个模板。string.Format
这些项目与创建输出的模板一起传递给。我想提供模板格式选项,以便用户可以控制他们希望如何输出项目。