All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
C#中XML架构设计实例
php5手动最简安装方法_php资料_编程技术
合理使用HTML标签进行CSS布局_[Html教程]
PHP中 ADODB 类库介绍(一)_[PHP教程]
Sql,server数据库备份的三个恢复模型_[SQL,Server教程]
必知技巧:ASP.NET中常用的优化性能方法详解_.net资料_编程技术
Response输出可以加批注的Excel_[Asp.Net教程]
JS捕捉网页浏览器窗口的关闭与刷新_JavaScript技术_编程技术
ASP.NET,2.0页面性能的考虑_.net资料_编程技术
C#教程:DLL动态链接库的DLL依赖项
Reading number is top 10 pictures
王艳写真温柔如水1
Sora aoi mirror memorial classics1
Ashlynn Brooke photograph of a group3
The money of more than 100 countries and regions15
看看什么叫美景
A man's favorite things2
Black and white also sexy--YanLiu1
Japan sexy beauty passion photo
毕姥爷事件,告诉你6条真理
Household design comfortable contracted
Download software ranking
Unix video tutorial5
实战黑客不求人
Tram sex maniac 2 (H) rar bag9
Take off clothes to survival
Unix video tutorial15
C++教程第四版
Tram sex maniac 2 (H) rar bag5
Boxer Classic video1
dreamweaver8中文版
Tram sex maniac 2 (H) rar bag6
aaa published in(发表于) 2013/12/18 8:08:59 Edit(编辑)
分部方法:应该纳入到C#中吗?_.net资料_编程技术

分部方法:应该纳入到C#中吗?_.net资料_编程技术

分部方法:应该纳入到C#中吗?_.net资料_编程技术-你的首页-uuhomepage.com

  C#新增的特性中引起争议的有许多,分部方法(Partial Method)算是一个。分部方法通常被定义在一个分部类中,在常规的类文件中也可实现。如果分部方法没有被实现,编译器就不会、对他们进行编译。


  分部方法有着严格的限制。它们必须是私有的,不能返回值,不能有输出参数。因为任何针对没有被实现的分部方法的调用都会简单地被忽略,所以说这些限制是非常有必要的。反过又意味着,分部方法不能作为一个明确分配的变量。Visual Basic也有分部方法,尽管VB不需要对变量的明确分配,它也有同样的限制。


  有那么多的限制,有人可能会问,“它们有什么优点?”。这个问题问得好,基本上,分部方法仅被代码生成器在处理轻量级事件的时候使用。就像 Alexander Jung所解释的 :


  分部方法通常(也可能是唯一相关的)的应用场景就是在代码生成的时候用于处理轻量级事件。假设你解析一个数据库或者一个XML文件,然后生成了数据类,结果你会发现有数十个类、几百个属性以及一大堆泛型和模板文件等。分部方法另外一个经常被用到的地方是验证,或者让属性的setter去更新另一个属性。所以如果你要使用产生的代码,或者在运行时有几百个事件和数千个方法调用的话( 其实大多数情况下只用到了其中的一点点),就让分部方法来吧。分部方法在声明和使用时要比事件容易得多,如果没有用到它们,它们就会消失。


  性能的提升并不是没有代价的。从分部方法必须是私有的限制中,Alexander发现了它们的不足之处:


  缺点:如果你喜欢元数据驱动的应用,并且已经被ASP.NET的数据绑定所困扰时(因为没有其他的方法可以附上元数据)……那么,就准备着在将来丢失信息吧。如果你需要为属性的setter增加一些事件(基于跟踪和调试的需要),如果你需要某个动态的行为(比如附上某个通用规则引擎)等等,那么就让我们祈祷代码分析器的开发人员能够预知这个场景(或者已经做好了准备)吧。你有了一个清晰的层的分离,那么实体就应该对UI一无所知吗?是的,将代码直接放到数据类中会破坏层的关系,但是你可以手动地用分部方法实现真正的事件啊。


  另外一些人对于C#中的分部方法也是忧虑重重,大部分是关于代码设计器的使用的。Stefan Wenig写道:


  首先,我不是非常热衷于设计器。我忧虑的是设计器也许很快就会将我们送上过去基于COM开发时的老路,数百个设计器和向导产生了那么多没人想去看的ATL和MCF代码。在我们陷于设计器、创建的无用文件和复杂的构建过程时,使用Ruby的家伙们在笑,因为他们用几行代码就可以解决(联想一下上世纪90年代COM/C++和Java的比较)。难道对于基于代码的开发人员生产率不是C#所首要考虑的(看看VB的设计器驱动的RAD路线图)?我们不应该再沉浸于基于设计器的,企业类库思想的,乐于使用软件工厂代码设计器的幻想中了。团结起来,抵制它们!


  Ayende Rahien也没有嘴软:


  让我们一起埋葬这些代码设计器吧,竖起分部方法的辉煌墓碑!





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.