【发布时间】:2010-10-10 07:58:00
【问题描述】:
有没有办法在 C# 中编写二进制文字,比如在十六进制前面加上 0x? 0b 不起作用。
如果没有,有什么简单的方法可以做到这一点?某种字符串转换?
【问题讨论】:
-
使用常量并给它们正确的名字,那么你必须用十进制写出它们的事实应该无关紧要。就我个人而言,我想阅读
if (a == MaskForModemIOEnabled)而不是if (a == 0b100101) -
另外注意:如果你发现这篇文章是因为你想要一个位字段,请考虑flags-attribute:msdn.microsoft.com/en-us/library/cc138362.aspx#sectionToggle0
-
两个非常好的建议,除了当 defining 表示位域时,这些命名的常量定义可以更容易地用二进制文字进行读写。 [标志]枚举数量 { None=0, One=1, Some=0b10, Most=0b100, All=0b111 }
-
无论如何,支持二进制文字is planned for Roslyn。
-
C#6.0 仍然不支持它,对吧?不能在 vs2015 中使用二进制文字:/