是的,恐怕这是可以预料的。
安装 .NET 3.5 不会升级
您使用 Visual 获得的编译器
Studio 2005。你必须得到 VS 2008
如果您想使用新的 C# 或
VB.NET 语法。我提到了这个
没有编译器支持
文章。
当然是有区别的
可以理解的语法之间
编译器和底层库
以及语法所使用的类型。
您仍然可以完全访问 Linq
技术,但你必须写
使用“标准”语法的代码。
这是上面的代码(加上一些
打印出的附加代码
结果)写成“长手”。这
在 VS 2005 中编译。你需要给
您的项目参考
System.Core v3.5 并导入
System.Linq 命名空间。
int[] 数字 = { 5, 4, 1, 3, 9, 8, 6,
7, 2, 0 };
//var numsPlusOne = from n in numbers
选择 n + 1; IEnumerable
numsPlusOne = Enumerable.Select(numbers, delegate(int n) { return
n + 1; });
foreach (int nNew in numsPlusOne) {
Console.WriteLine(nNew); }
好的,我的博客显然是导致
误解,我需要
仔细确定正在发生的事情
这里。人们需要说得很清楚
他们心目中的区别
不同的东西:
a) .NET 框架 该框架是
主要由图书馆组成
预先编写的面向对象代码
- 即,一个类库,或者更准确地说,是一组库。
b) C# 和 VB.NET 编译器 这些
被编写为.Net 程序集。这
新的编译器与
框架。
c) C# 和 VB.NET 编辑和
Visual 中提供的编译支持
工作室。从 Visual Studio 开始
2008 年,微软增强了这些
工具,以便您可以轻松定位
不同版本的框架。
这包括针对不同的
C# 和 VB.NET 的版本
编译器。
注意以下几点:
• 所有 .NET 3.5 代码均符合
版本的标准化定义
公共语言运行时 2.0。这包括所有代码
类库,包括 Linq,以及
甚至编译器中的代码
组件。因此,Visual Studio 2005
可以访问任何公共成员
任何地方的公开课
图书馆,甚至可以达到受保护的
和私有成员通过反射。
这就是为什么你可以愉快地利用
Visual Studio 2005 中的 WCF 3.5。
• Visual Studio 2005 早于 .NET 3.5
因此它的代码编辑和
编译功能不针对或
支持编译器的版本
随 .NET 3.5 提供。因此,有
不支持新语法
由最新的编译器,这就是为什么
Chris 的代码无法编译(它使用
新的对象初始化语法)。
编译器支持的语法是一种
事物。基础类和
由专业人士利用的其他类型
诸如 Linq 之类的语法是什么
不同的。你没有这个能力
在旧版本中使用新的 Linq 语法
Visual Studio 版本。你做,
但是,有能力访问
底层类库
直接使用“传统”语法。
说了这么多,我可以
不负责任并指出
微软确实发布了一些 Linq CTP
Visual Studio 2005 的工具。这
仍可在:
http://www.microsoft.com/downloads/details.aspx?familyid=1e902c21-340c-4d13-9f04-70eb5e3dceea&displaylang=en.
也许可以在
结合仔细的改变
中引用的 Microsoft.CSharp.targets
包含在您的 MSBuild 脚本
项目文件以说服
Visual Studio 2005 支持
最新的语法和编译器。一世
不推荐这个,因为这个
取决于 CTP 代码,这可能不是
提供对语法的完整支持
在发行版中支持
Visual Studio 2008 和一定程度
黑带操纵
Visual Studio 的机制。我不接受
对任何问题负责的人
如果他们试图得到,可能会遇到
这工作!