局部类型的一些限制
局部类型只适用于类结构或接口不支持委托或枚举
同一个类型的各个部分必须都有修饰符partial
使用局部类型时一个类型的各个部分必须位于相同的名称空间中
一个类型的各个部分必须被同时编译换言之C#不支持先编译一个类型的某些部分然后再编译一个类型的某些部分
局部类型的几个特点
关键字partial是一个上下文关键字只有和classstructinterface放在一起时才有关键字的含义因此partial的引入不会影响现有代码中名称为partial的变量
局部类型的个数并不必须为个或个以上也可以为个虽然这时候已经没有局部的必要
局部类型的各个部分一般是分开放在几个不同的cs文件中但C#编译器允许我们将它们放在同一个cs文件中
在局部类型上应用特性
局部类型上的特性具有累加效应换言之如下的代码
[AttrAttr(hello)]
partial class A{}
[AttrAttr(goodbye)]
partial class A{}
相当于在A类上应用了如下特性
[Attr
Attr
(
hello
)
Attr
Attr
(
goodbye
)]
partial class A{}
局部类型上的修饰符
一个类型的各个部分上的访问保护修饰符必须维持一致性
如果一个类型有一个部分使用了abstract修饰符那么整个类将被视为抽象类
如果一个类型有一个部分使用了sealed修饰符号 那么整个类将被视为密封类
一个类的各个部分不能使用相互矛盾的修饰符比如不能在一个部分上使用abstract又在另一个部分上使用sealed
局部类型的基类或接口
一个类型的各个部分上指定的基类必须一致某些部分可以不指定基类但如果指定则必须相同
[] [] []