关于C#中Partial局部类型关键字的使用
虽然之前在做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看齐。
最新文章
- MemCache
- 01shell入门基础
- VirtualBox网络配置
- ruby(html)
- C++ string类的学习
- Android-管理Activity生命周期 -停止和重启Activity
- (译)WebRTC实战: STUN, TURN, Signaling
- application.properties 文件和 application.yml 文件的区别
- tomcat 配置细节
- java中如何给控件设置颜色
- Python词云(词频统计,掩膜显示)
- JAVA I/O(一)基本字节和字符IO流
- redux-saga印象
- checkbox的name与JavaBean的交互时发现的一个现象
- hibernate映射对象三种状态的分析
- iOS:使用Github托管自己本地的项目代码方式二(客户端方式: Github Desktop)
- ant design pro (八)构建和发布
- linux线程篇 (三) 线程的同步
- 手脱ASProtect v1.23 RC1(无Stolen Code)
- 基本数据类型 list and tuple 04