当前位置: 首页 > 编程语言 > C#

是否有适用于.Net3.5的C#4.0的更改列表?

时间:2023-04-10 15:39:45 C#

是否有适用于.Net3.5的C#4.0的更改列表?我最近看到了C#4.0中的很多变化。我真的很喜欢其中的一些。但是,出于兼容性原因,我仍然不想迁移到.Net4.0。那么,是否有适用于.Net3.5或更低版本的全新C#4.0语言功能列表?例如,默认参数是否需要.NET4.0CLR,或者它们是编译器功能?可以使用自动属性(C#3.0功能)并仍然以.NET2.0为目标,因为它不需要Framework支持,但不使用LINQ表达式,因为它确实需要Framework3.5。请不要说“C#4.0当然不能在.Net3.5中工作,因为它更旧”4.0中的C#编译器具有新的多目标功能。简短版本是它将生成一个程序集,其中包含定义System.Object(通常是mscorlib.dll)的引用中存在的任何元数据的版本。这使您可以使用它为2.0和3.5以及各种版本的Silverlight编译程序集。引入此功能是为了在VisualStudio2010中支持多目标。因此,您可以使用C#4.0编译器编译3.5程序集并使用您想要的任何C#4功能,只要不存在对4.0库的特定依赖项。例如,命名参数和可选参数可以正常工作,因为它们不使用任何4.0框架功能。但是,动态但开箱即用,它不适用于3.5。这是一篇关于此的帖子,涵盖了基础知识。http://blogs.msdn.com/ed_maurer/archive/2010/03/31/multi-targeting-and-the-c-and-vb-compilers.aspx短名单(来自Ed的帖子)是:不work的东西包括dynamic和non-pia(我们在实现它们的时间方面最大的两个支出)。前者需要框架支持,后者需要运行时支持。我知道协变和逆变在CLR2.0中通过IL注释+和-在类型参数中有一些支持。但不确定其他功能。这不是一个列表,也不是确定的,但作为一个例子,我刚刚建立了一个针对.NET3.5的新VS2010项目,并成功地创建了一个带有默认参数的方法并使用命名参数调用它,这两个参数都是C#4.0的特性。考虑到默认参数已经是VB.NET的一个特性,C#可能只是在编译器级别实现它。然而,CLR团队可能走了一条全新的路。您应该准备好修改您的问题以说明“C#4.0的哪些功能是.NET3.5框架的编译器更改”我正在考虑更改“旧”规范...因此锁定更改将不可用需要新的重载-但“类似字段的事件”更改应该有效。我将不得不检查编译器发出的内容;-p果然:使用系统;类程序{公共事件EventHandlerSomeHandler;staticvoidMain(){}}getsnew-styleaccessors;-p以上是C#学习教程:有ListofchangesforC#4.0for.Net3.5吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: