Csharp/C#教程:使用Visual Studio 2008的2.0中的C#.NET 3.0 / 3.5function分享


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

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

可得到

无法使用

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

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

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

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

要定义扩展方法,如果您的目标是.NET 2.0,则需要提供以下类:

 namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Assembly)] sealed class ExtensionAttribute : Attribute { } } 

之前有一些关于类似内容的讨论,您也可能也想阅读:

针对.NET Framework 3.5,使用.NET 2.0运行时。 注意事项?

您可以使用Mono的System.Core版本,该版本完全支持LINQ和表达式树。 我根据.net 2.0编译了它的源代码,现在我可以在我的.net2.0项目中使用它了。 这对于需要在win2k上部署的项目非常有用,其中.net3.5不可用。

Lambdas和Extension方法完全由编译器处理,可以与.Net 2.0框架一起使用。

上述就是C#学习教程:使用Visual Studio 2008的2.0中的C#.NET 3.0 / 3.5function分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/942706.html

(0)
上一篇 2021年11月13日
下一篇 2021年11月13日

精彩推荐