文化不变对象 ToString()

发布于 2024-12-05 15:22:19 字数 184 浏览 2 评论 0原文

如何在对象上调用 ToString() 并使其使用不变区域性? 实现 IConvertible 的对象(如 bool、int、float..)上有 ToString() 重载,但如果相关对象不是 IConvertible,该怎么办?

How can I call ToString() on an object and make it use the invariant culture?
There are overloads for ToString() on objects that implement IConvertible (like bool, int, float..), but what if the object in question is not IConvertible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

泪痕残 2024-12-12 15:22:19

System.Convert 类有一个静态 ToString 重载,它接受一个 object

Convert.ToString(obj, CultureInfo.InvariantCulture);

根据我的基准,这大约是 string.Format(CultureInfo. InvariantCulture,“{0}”,值),更重要的是,它看起来更干净。但是,如果您已经在构建字符串,我建议您使用 FormattableString.Invariant。

FormattableString.Invariant($"Object value: {obj}")

The System.Convert class has a static ToString overload that takes an object.

Convert.ToString(obj, CultureInfo.InvariantCulture);

Based on my benchmarks, this is roughly twice as fast as string.Format(CultureInfo.InvariantCulture, "{0}", value) and, more importantly, it looks cleaner. However, if you are building a string already, I'd recommend FormattableString.Invariant.

FormattableString.Invariant(
quot;Object value: {obj}")
爱给你人给你 2024-12-12 15:22:19

我认为 IFormattable 是相关接口。它有一个 ToString 方法,可让您指定格式提供程序,该提供程序可以是一种区域性。

I think IFormattable is the relevant interface. It has a ToString method that lets you specify the format provider, which can be a culture.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文