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版本,都可以毫无问题地使用它.
var是VS2008使用的C#3语言中的合成糖.代码仍然可以编译为.net 2.0兼容.您应该拥有的唯一问题是您需要在VS2005中编辑这些文件.
归档时间: |
|
查看次数: |
4832 次 |
最近记录: |