C#关键字之Partial详解

Partial是局部类型的标志。局部类型可以实现将一个类、结构或接口分成几个部分,分别放在在几个不同的.cs文件中(当然也可以放在同一个.cs文件中)。在程序进行编译之后,将会合并成一个完整的类。因此局部类型并没有看起来那么难以理解,使用partial只是让类变得更容易管理,实际使用时和普通的类一样。

  1. 适用范围: 
    (1)类型特别大,不适合放在一个文件中实现。 
    (2) 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。(如设计模式中的“模板方法”。模板方法就是把所有相同功能都写在父类中,需要有变化的方法在父类中写成虚方法,然后在子类中重写虚方法,因此模板方法利用partial实现了代码的利用。) 
    (3)一个类同时需要多个人编写。

  2. 注意事项: 
    (1)只适用于类、接口、结构,不支持委托和枚举。 
    (2)同一个类型的各个部分必须有修饰符partial。 
    (3)使用局部类型时,一个类型的各个部分必须位于相同的命名空间中。 
    (4)一个类型的各个部分必须同时被编译。 
    (5)partial只有和class、struct、interface放在一起时才表示局部类型。 
    (6)一个类型的各部分子类的访问修饰符必须保证一致性。 
    (7)若其中一个部分类使用了static/abstract/sealed修饰符,则整个类都是静态类/抽象类/密封类。(后面会有static/abstract/sealed的详解)。另外注意不能在一个部分类上使用static,在另一个部分类上使用abstract。 
    (8)局部类型的累加效应。 
    a. 特性的累加效应。

[Attribute1, Attribute2("Hello")]
partial class Class1{}[Attribute3, Attribute2("Exit")]
partial class Class1{}相当于
[Attribute1, Attribute2("Hello"), Attribute3, Attribute2("Exit")]class Class1 {}注:Attribute2属性允许在类上多次使用。1234567891011
b. 接口的累加效应。12
partial class Class2: Iinterface1, Iinterface2 {}partial class Class2: Iinterface3 {}partial class Class2: Iinterface2 {}相当于class Class2: Iinterface1, Iinterface2, Iinterface3 {}


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864