【问题标题】:Can I declare constant integers with a thousands separator in C#?我可以在 C# 中声明带有千位分隔符的常量整数吗?
【发布时间】:2011-12-13 12:08:51
【问题描述】:

Cobra 编程语言有一个有用的功能,您可以在数字文字中使用下划线来提高可读性。例如,以下是等价的,但第二行更容易阅读:

x = 1000000
x = 1_000_000  # obviously 1 million

C# 有什么等价的吗?

【问题讨论】:

  • 请注意,这很可能会出现在 C# 7 中。
  • 每次我用 C# 写大量的数字,我都希望我有这个。

标签: c# constants


【解决方案1】:

从 C# 7 开始回答

是的,这在 C# 7 中受支持。但请注意,没有验证您已将下划线放在正确的位置:

// At a glance, this may look like a billion, but we accidentally missed a 0.
int x = 1_00_000_000;

2011 年的回答

不,C# 中没有类似的东西。你可以这样做:

const int x = 1000 * 1000;

但这已经是最好的了。

(请注意,此增强功能也适用于 Java 7...也许有一天它会在 C# 中引入。)

【讨论】:

  • 所以你知道的,看起来有点作弊,你会怎么写123456789
  • @SurjitSamra:是的,在这种情况下它不会有帮助 - 但是常量通常是其他值的倍数。 (例如“一小时内的毫秒数”等)在这种情况下,通常为每个常量指定一个单独的名称以适当地构建它们会更具可读性。
  • 如果您可以推动 CSharp 团队拥有此功能,我表示赞成;)
  • 根据 Jon 的预测,现在可以在 C# 7 中使用它。请参阅blogs.msdn.microsoft.com/dotnet/2017/03/09/…中的“文字改进”
  • @Sнаđошƒаӽ:我会编辑这个,但我没有规定每次有新的语言版本要检查时都要检查我的所有答案......我没有时间做其他事情。
【解决方案2】:

是的,您可以使用 C# 7.0 执行此操作,如图所示 here

public const long BillionsAndBillions = 100_000_000_000;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-18
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2017-09-14
    相关资源
    最近更新 更多