当前位置:  开发笔记 > 编程语言 > 正文

使用Visual Studio 2008的2.0中的C#.NET 3.0/3.5功能

如何解决《使用VisualStudio2008的2.0中的C#.NET3.0/3.5功能》经验,为你挑选了3个好方法。

在升级到Visual Studio 2008之后,.NET 2.0中可以使用哪些特定于C#3.0/3.5的新功能?此外,有哪些功能不可用?

可得到

Lambda表达式

扩展方法(通过声明一个空的System.Runtime.CompilerServices.ExtensionAttribute)

自动属性

对象初始化器

集合初始化器

LINQ to Objects(通过实现IEnumerable扩展方法,参见LinqBridge)

无法使用

表达树

WPF/Silverlight库

Lucas.. 16

您可以使用由编译器处理的任何新的C#3.0功能,通过发出2.0兼容的IL并且不引用任何新的3.5程序集:

Lambdas(用作Func<..>,不是Expression>)

扩展方法(通过声明一个空的System.Runtime.CompilerServices.ExtensionAttribute)

自动属性

对象初始化器

集合初始化器

LINQ to Objects(通过实现IEnumerable 扩展方法,参见LinqBridge)


Marc Gravell.. 5

几乎所有东西!Daniel Moth 在这里和这里介绍了这个.这只留下了运行时支持:LINQBridge提供了LINQ-to-Objects - 它只留下了像Expression支持这样的更大的API,以及LINQ-to-SQL之类的工具.这些太大了,无法合理地移植回.NET 2.0,因此我将使用.NET 3.5.



1> Lucas..:

您可以使用由编译器处理的任何新的C#3.0功能,通过发出2.0兼容的IL并且不引用任何新的3.5程序集:

Lambdas(用作Func<..>,不是Expression>)

扩展方法(通过声明一个空的System.Runtime.CompilerServices.ExtensionAttribute)

自动属性

对象初始化器

集合初始化器

LINQ to Objects(通过实现IEnumerable 扩展方法,参见LinqBridge)



2> Marc Gravell..:

几乎所有东西!Daniel Moth 在这里和这里介绍了这个.这只留下了运行时支持:LINQBridge提供了LINQ-to-Objects - 它只留下了像Expression支持这样的更大的API,以及LINQ-to-SQL之类的工具.这些太大了,无法合理地移植回.NET 2.0,因此我将使用.NET 3.5.



3> Jon Skeet..:

我在我网站上的一篇文章中介绍了这一点.

在面向.NET 2.0时,几乎所有C#3.0功能都可用.对于扩展方法,您需要定义一个额外的属性.表达树根本不可用.查询表达式支持基于翻译后跟"普通"C#规则,因此您需要一些东西来提供Select,Where等方法.LINQBridge是事实上的标准".NET 2.0中的对象的LINQ"实现.您可能希望在FuncAction委托系列中声明委托以使其更容易使用lambda表达式 - 然后在移动到.NET 3.5时删除它们

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有