|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
既然话题已经抄起,我打算今晚发篇博文再引导一下舆论方向,使它再火两天,抛砖引玉,而且赵劼先生一直在跟帖,使.NET阵营的我感到万分难得。在我们要深切研讨第一个C#特征之前,有需要晓得微软允诺,任安在C#中有的功效在VB中也会具经由过程某种情势来供应,反之亦然。不外他们没有需要以一样的体例来供应这些功效,言语之间仍是但愿持续有所区分。
跟着静态言语和DLR日趋增添的主要性,C#也必要能处置静态范例化的对象(DynamicallyTypedObjects)。今朝,经由过程对静态类举行反射,固然可以完成前期挪用,但这类体例却必要大批的代码。别的,对DLR对象的挪用必要一个完整分歧的,利用了DLR反射函数的挪用体例。
在C#中,你能够复杂地声明对象的静态范例为“dynamic”。就像VB的OptionExplicitOff选项一样,它告知编译器疏忽需要的代码来剖析运转时挪用的办法绑定。在IL层面,被声明为dynamic的变量是一个System.Object类型,附加了一个分外标签来标明它利用静态挪用语义。
在运转时,一切一般重载剖析划定规矩都是基于对象的运转时范例实行的。这意味着,你可以间接地实行多重分派,而不必借助反射或会见者形式。
每一个静态言语都具有它们本人的成员查找划定规矩。为了撑持这个功效,对象必要完成IDynamicObject接口。假如这个接口存在于运转时对象上,那末对象就可以处置它本人的成员查找历程。在树模中,Ander演示了怎样在C#中界说一个静态对象。
固然,这就意味着你能够在C#中的任何中央利用duck范例。
检察英文原文:C#FeatureFocus:DynamicallyTypedObjects,DuckTyping,andMultipleDispatch
来自:http://www.infoq.com/cn/news/2008/11/CSharp-Dynamic
听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了) |
|