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

C#4.0的酷炫新特性分享

时间:2023-04-11 02:04:26 C#

C#4.0的酷炫新特性你们正在寻找的最酷的新特性是什么?如果你需要一些动态的东西,听起来很酷,但我不希望经常使用它。委托和接口的通用变体是相似的——目前缺乏变体是一个令人头疼的问题,但很多地方都在为C#4中可用的有限变体而苦苦挣扎。COM特性对我来说并不是特别有趣——我真的应该有一些想法他们所做的。可选参数和命名参数在构建不可变类型时会产生很大的不同:它支持如下语法:Personp=newPerson(name:"Jon",age:32);没有巨大的构造函数重载组合。我更喜欢以只读自动实现属性的形式编写不可变类型,但我不希望我们会得到这些。(它们目前肯定不在提议的功能列表中。)就个人而言,我实际上对.NET4.0的一些框架功能更感兴趣——特别是代码契约和并行扩展。方法参数默认值:publicvoidMyMethod1(stringvalue1="test",intnum1=10,doublenum2=12.2){//...}可能是匿名返回类型:publicvarMyMethod2(){//..}meta组IDynamicObject是动态背后的IDynamicObject,允许在运行时解释调用。这对于REST、XML、COM、DataSet、动态语言等固有的非类型化场景是有意义的。它是构建在动态语言运行时(DLR)之上的动态调度的实现。您可以使用声明为动态的变量,而不是繁琐的反射语义。想象一下在Silverlight中使用一个Javascript对象:dynamicobj=GetScriptObject();HtmlPage.Window.Alert(obj.someProperty);支持所有C#语法(我相信):HtmlPage.Window.Alert(obj.someMethod()+obj.items[0]);反射本身看起来更干净:publicvoidWriteSomePropertyValue(objecttarget){Console.WriteLine((targetasdynamic).SomeProperty);}publicvoidWriteSomeMethodValue(objecttarget,intarg1,stringarg2){Console.WriteLine((targetasdynamic).SomeMethod(arg1,arg2));动态是工具包中的另一个工具。它不会改变静态与动态的争论,它只是简化了摩擦。增强了对表达式树的支持!严格来说不是C#,但由于.NET在这里被标记,所以它是关于BCL更改的一个很好的链接。自我注意:必须在4.0版本之前重命名我的Stopwatch.Restart()扩展方法:)dynamic关键字看起来可以很好地弥合IronRuby或IronPython等动态语言之间的差距,这可能会有所帮助在MicrosoftApplicationsinmonocultures中……这让我很兴奋。虽然我对它很感兴趣,但我也担心它会被过度使用,例如泛型和LINQ、SQLCLR等。:)C#4.01)PLinq2)命名和可选参数3)惰性4)Co&ContraVariance5)任务并行6)动态对象7)Expando对象8)改进的COM-Interop9)元组等等能够使用async和await以同步方式编写异步代码很酷。以上就是C#学习教程的全部内容:C#4.0的新酷功能。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: