在C#2.0中使用关键字var bad?

Pat*_*ick 12 .net c# compiler-construction

我读了一篇关于在C#2使用C#3功能的文章,你可以在其中输入类型var x = 2;,即使项目是2.0项目,Visual Studio 2008编译器也会选择它并生成与键入时相同的代码int x = 2.

但我不知道的是,在某些情况下你应该这样做吗?我一直以为var关键字直到C#3才到达.如果编译器生成相同的代码并且我可以输入完全相同的C#3代码和C#2代码,那真的有什么不同,因为CLI是相同的,对?

从上面的链接引用

在幕后,编译器生成常规的.NET 2.0代码.

.NET 2.0代码和.NET 3代码之间有什么区别吗?

Gor*_*pik 25

我担心你混淆了C#版本和.NET版本.

你不能var在C#2.0中使用,编译器会认为它只是一个标识符.但是你可以在面向.NET 2.0的C#3.0中使用它,因为var它只是一种语言(C#)结构,而不是.NET结构..NET编译器会将其转换为生成的CIL中的相应类型,因此JIT编译器永远不会看到它,您将完全没问题.

由于VS2008编译器是C#3.0编译器,var因此无论您使用的是哪个.NET版本,都可以毫无问题地使用它.


Sam*_*der 7

var是VS2008使用的C#3语言中的合成糖.代码仍然可以编译为.net 2.0兼容.您应该拥有的唯一问题是您需要在VS2005中编辑这些文件.

  • 当然它是C#3的一部分.它不是.NET 3.5的一部分,但这是另一回事. (2认同)