为什么新功能"二进制文字"从0b开始而不是后缀?

时间:2014-04-23 12:02:21

标签: c# roslyn c#-6.0

下一个 C#版本计划( 2014年4月)具有二进制文字,如Language Features Status of Roslyn project所示。

该页面中的示例如下:

0b00000100

所以你可能会这样使用:

var myBynaryLiteral = 0b00000100;

我想了解为什么他们选择使用0b作为前缀而不是最后使用字母,就像他们使用doublefloatdecimal一样上。

double a = 1d;
float b = 1f;
decimal c = 1m;

1 个答案:

答案 0 :(得分:26)

整数文字具有两个不同的属性:它们的类型,可以用LUL等后缀指定,以及它们的基数(称为"形式"在{{3 }}),可以使用0x和现在0b等前缀指定。

始终通过后缀指定类型,并且始终通过前缀指定基数,因此保持相同的约定是有意义的。此外,您可以组合两个说明符。

例如:

0b00101010UL

表示文字42,存储为无符号长整数,并以基数2表示。