最近我遇到了一个代码库,发现了一些代码如下
var a = 1_23_456;
Console.WriteLine(a);
我试图在visual studio 2015 / .net小提琴中运行它,但它有一个编译错误。但是当我使用Roslyn 2.0编译器重试它时,它被编译并给我输出123456。
这是怎么回事?为什么它将数据显示为整数?
答案 0 :(得分:4)
下划线是数字分隔符。它们习惯于更容易读取大数字(特别是二进制数字)。你可以read about them on MSDN。
下划线不会更改数据类型。以下所有语句都会生成相同的数据类型(int或System.Int32)和值:
var a = 123456;
int b = 123456;
System.Int32 c = 123456;
var d = 1_23_456;
int e = 1_23_456;
System.Int32 f = 1_23_456;
您需要在Visual Studio 2017中使用新的编译器来编译它,尽管您可以使用using Visual Studio 2015。