【发布时间】:2014-12-24 19:46:28
【问题描述】:
我喜欢统一,我希望保持我的代码风格准则严格一致。
所以考虑一下ulong 文字:
var x = 0xFFUL;
对比
var x = 0xffUL;
这可能是一个愚蠢的问题,但我讨厌我的代码即使在这些微不足道的事情中也不一致,所以我想知道 C# 项目团队的十六进制数字是什么...
【问题讨论】:
-
我建议完全不要使用十六进制数。当开发人员看到他必须在脑海中进行数学运算才能将其转换为十进制时,如果数字足够大,那么大脑将无济于事,您需要一些转换器。所以请避免使用它并简单地使用十进制数字系统。
-
@SriramSakthivel 这是一个大规模处理二进制数据的项目。将所有文字翻译成十进制是愚蠢的,因为我有一堆这些常量文字,所以我的问题。
-
那么,
(1 << 8) - 1呢?当然,这取决于位置。哦,别忘了你也可以写0xfful或0xFFul:D 有很多选择。不过,总而言之,这是一个相当基于意见的问题,所以它可能会被关闭。 -
@Luaan 文字后缀的通用约定是大写。所以
l不会与1混淆。如果我没记错的话,VS 甚至会发出使用小写文字后缀的警告。 Here 的另一个来源谈到避免在文字后缀中使用小写字母,它在 Java 中,但在 C# 中也应该有效,但它确实仅指long。 -
关于@SriramSakthivel 的评论,我只是习惯于阅读十六进制。十六进制是为了简化二进制而引入的数字系统。对于我的项目,十六进制是华丽的,我不愿意用移动运算符或任何能够使用小数的黑客来代替它。
标签: c# hex literals naming-conventions