虽然之前在做Winform开发时候,经常遇到Partial关键字,但是最近在代码中看到使用Partial将同名类文件写在多个源文件中,因此想要记录下Partial的详细使用。

Partial types允许把类,结构和接口打破为多个代码碎片存在不同的源代码文件,以便于简化开发和维护。加之partial types允许机器产生的和用户编写的类型部分分离,这样就可以方便增加工具产生的代码。

Partial,是一个新的类型修饰符,在把一个类型定义在多个部分的时候使用。下面是一个partial class的示例,以两个部分实现。这两个部分可能在两个不同的源代码文件,比如说第一个部分是由一个数据库映射工具产生的,而第二个部分是手工编写的。

public partial class Customer
{
    private int id;
    private string name;
    private string address;
    private List<Order> orders;
    public Customer() {
        
    }
}
public partial class Customer
{
    public void SubmitOrder(Order order) {
        orders.Add(order);
    }
    public bool HasOutstandingOrders() {
        return orders.Count > 0;
    }
}

当上面的两个部分在一起编译,结果产生的代码就好像这个类是写在一个单元里一样。

public class Customer
{
    private int id;
    private string name;
    private string address;
    private List<Order> orders;
    public Customer() {
        
    }
    public void SubmitOrder(Order order) {
        orders.Add(order);
    }
    public bool HasOutstandingOrders() {
        return orders.Count > 0;
    }
}

一个partial type的所有部分必须在一起编译,这样所有的部分才能在编译的时候整合在一起。特别的是partial types不允许加入已经编译好的类型。

P.S:Java不支持局部类型(Wikipedia article Comparison of Java and C Sharp)。但却不能阻止我向Java看齐。

最新文章

  1. MemCache
  2. 01shell入门基础
  3. VirtualBox网络配置
  4. ruby(html)
  5. C++ string类的学习
  6. Android-管理Activity生命周期 -停止和重启Activity
  7. (译)WebRTC实战: STUN, TURN, Signaling
  8. application.properties 文件和 application.yml 文件的区别
  9. tomcat 配置细节
  10. java中如何给控件设置颜色
  11. Python词云(词频统计,掩膜显示)
  12. JAVA I/O(一)基本字节和字符IO流
  13. redux-saga印象
  14. checkbox的name与JavaBean的交互时发现的一个现象
  15. hibernate映射对象三种状态的分析
  16. iOS:使用Github托管自己本地的项目代码方式二(客户端方式: Github Desktop)
  17. ant design pro (八)构建和发布
  18. linux线程篇 (三) 线程的同步
  19. 手脱ASProtect v1.23 RC1(无Stolen Code)
  20. 基本数据类型 list and tuple 04

热门文章

  1. js中如何判断属性是对象实例中的属性还是原型中的属性
  2. python框架Django实战商城项目之用户模块创建
  3. Centos7 U盘安装
  4. seo搜索优化教程14-seo搜索优化实战
  5. flask 部署外部访问
  6. JVM02——JVM运行时内存
  7. Java Grammar(二):运算符
  8. npm run build时卡住不动了...
  9. 深入理解计算机系统 (CS:APP) 缓冲区漏洞实验 – Buffer Lab 解析
  10. 欲善事先利器-IEAD插件篇