它在C#中的数据类型是什么?

时间:2017-08-28 13:39:11

标签: c# roslyn

最近我遇到了一个代码库,发现了一些代码如下

var a = 1_23_456;
Console.WriteLine(a); 

我试图在visual studio 2015 / .net小提琴中运行它,但它有一个编译错误。但是当我使用Roslyn 2.0编译器重试它时,它被编译并给我输出123456。

这是怎么回事?为什么它将数据显示为整数?

1 个答案:

答案 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