我读了一篇关于 using C# 3 features in C# 2 的文章例如,您可以在其中键入 var x = 2;
,即使该项目是 2.0 项目,Visual Studio 2008 编译器也会选择它并生成与键入 时相同的代码int x = 2
.
但我不明白的是,在某些情况下您是否应该不这样做?我一直认为 var
关键字直到 C# 3 才出现。如果编译器生成相同的代码并且我可以键入完全相同的 C# 3 代码和 C# 2 代码,那么究竟有什么区别,因为 CLI 是一样的,对吧?
引用上面的链接
Behind the scenes, the compiler generate regular .NET 2.0 code.
.NET 2.0 代码和 .NET 3 代码之间有什么区别吗?
最佳答案
恐怕您混淆了 C# 版本和 .NET 版本。
在C# 2.0 中不能使用var
,编译器会认为它只是一个标识符。但您可以在面向 .NET 2.0 的 C# 3.0 中使用它,因为 var
只是一种语言 (C#) 结构,而不是 .NET 结构。 .NET 编译器会将其转换为生成的 CIL 中的适当类型,因此 JIT 编译器永远不会看到它,您会完全没问题。
由于 VS2008 编译器是 C# 3.0 编译器,因此无论您的目标是哪个 .NET 版本,您都可以在那里使用 var
。
关于c# - 在 C# 2.0 中使用关键字 var 不好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2736442/