知识大全 C#分部方法(Partial Method)讨论

Posted

篇首语:真正有知识的人谦虚、谨慎;只有无知的人才冒昧、武断。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#分部方法(Partial Method)讨论相关的知识,希望对你有一定的参考价值。

C#分部方法(Partial Method)讨论  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

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

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

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

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

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

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

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

  首先 我不是非常热衷于设计器 我忧虑的是设计器也许很快就会将我们送上过去基于开发时的老路 数百个设计器和向导产生了那么多没人想去看的ATL和MCF代码 在我们陷于设计器

cha138/Article/program/net/201311/12529

相关参考

知识大全 C# partial 说明

C#partial说明  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  什么是局部类型?  C#引

知识大全 C# 3.0中的分部方法

C#3.0中的分部方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  分部方法的语法  在看C#

知识大全 C#开发的两个原则的深入讨论

C#开发的两个原则的深入讨论  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用属性避免将数据成

知识大全 对C#开发的两个基本原则的深入讨论

对C#开发的两个基本原则的深入讨论  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用属性避免将

知识大全 关于c#静态方法和实例方法的辨析和应用

  本文将围绕c#静态方法和实例方法讨论一下针对一些观点如静态方法是常驻内存还有静态方法比实例方法先装载做一个辨析同时讨论下何时用静态方法何时用实例方法  前几日在微软的好友发给我一个链接《静态方法和

知识大全 解析php函数method

php函数method_exists()与is_callable()的区别在哪?在php面相对象设计过程中往往我们需要在调用某一个方法是否属于某一个类的时候做出判断常用的方法有method_exist

知识大全 IE里Window的Method列表

IE里Window的Method列表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  alert(

知识大全 c#窗体事件

  从网上看到了一个窗体拖动事件超级简洁至少现在这个阶段我是看起来有困难的有兴趣的哥们们可以讨论下usingSystemusingSystemCollectionsGenericusingSystem

知识大全 使用Factory Method模式

Java深入分析之:使用FactoryMethod模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 用C#创建COM对象

用C#创建COM对象  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在本篇文章中我们将讨论下面的