【问题标题】:C# casing convention for hexadecimal literals?十六进制文字的 C# 大小写约定?
【发布时间】:2014-12-24 19:46:28
【问题描述】:

我喜欢统一,我希望保持我的代码风格准则严格一致。

所以考虑一下ulong 文字:

var x = 0xFFUL;

对比

var x = 0xffUL;

这可能是一个愚蠢的问题,但我讨厌我的代码即使在这些微不足道的事情中也不一致,所以我想知道 C# 项目团队的十六进制数字是什么...

【问题讨论】:

  • 我建议完全不要使用十六进制数。当开发人员看到他必须在脑海中进行数学运算才能将其转换为十进制时,如果数字足够大,那么大脑将无济于事,您需要一些转换器。所以请避免使用它并简单地使用十进制数字系统。
  • @SriramSakthivel 这是一个大规模处理二进制数据的项目。将所有文字翻译成十进制是愚蠢的,因为我有一堆这些常量文字,所以我的问题。
  • 那么,(1 << 8) - 1 呢?当然,这取决于位置。哦,别忘了你也可以写0xfful0xFFul :D 有很多选择。不过,总而言之,这是一个相当基于意见的问题,所以它可能会被关闭。
  • @Luaan 文字后缀的通用约定是大写。所以l 不会与1 混淆。如果我没记错的话,VS 甚至会发出使用小写文字后缀的警告。 Here 的另一个来源谈到避免在文字后缀中使用小写字母,它在 Java 中,但在 C# 中也应该有效,但它确实仅指 long
  • 关于@SriramSakthivel 的评论,我只是习惯于阅读十六进制。十六进制是为了简化二进制而引入的数字系统。对于我的项目,十六进制是华丽的,我不愿意用移动运算符或任何能够使用小数的黑客来代替它。

标签: c# hex literals naming-conventions


【解决方案1】:

迄今为止,表示十六进制文字最流行的格式是 0 到 9 和 A 到 F。

您可以通过参考十六进制维基百科条目here 来确认大写字符的使用是最流行的。

因此跟随"wisdom of the crowd"并使用0-9,A-F。

【讨论】:

    【解决方案2】:

    我实际上正在查看 Microsoft 的代码库,也发现了那里的不一致之处。
    Here 是小写,here 是大写。

    所以我相信真正的答案是没有任何惯例,应该选择他最喜欢的命名。

    同时搜索 here 我没有找到任何关于十六进制大小写的信息。

    【讨论】:

      猜你喜欢
      • 2014-03-08
      • 2018-09-20
      • 2012-09-16
      • 2017-10-18
      • 2013-05-03
      • 2013-11-05
      • 1970-01-01
      • 2020-11-01
      • 1970-01-01
      相关资源
      最近更新 更多