partial class App
{
public void Foo()
{...}
...
}
partial class App
{
public void Bar()
{...}
...
}
局部类型简介
局部类型允许我们将一个类型(类、结构或者接口)分成几个部分,分别实现在几个不同
的.cs 文件中。
局部类型适用于以下情况:
- 类型特别大,不宜放在一个文件中实现;
- 一个类型中一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一
起。
局部类型是一个纯语言层的编译处理,不影响任何执行机制 - 事实上 C#编译器在编译的
时候仍会将各个部分的局部类型可并成一个完整的类。
局部类型的一些限制
局部类型只适用于类、结构、或接口,不支持委托或枚举。
同一个类型的各个部分必须都有修饰符 partial。
使用局部类型时,一个类型的各个部分必须位于相同的名称空间中。
一个类型的各个部分必须被同时编译。换言之,C#不支持先编译一个类型的某些部分,
然后再编译一个类型的某些部分。
局部类型的几个特点
关键字 partial 是一个上下文关键字,只有和 class、struct、interface 放在一起时才有关键字
的含义。因此 partial 的引入不会影响现有代码中名称为 partial 的变量。
局部类型的个数并不必须为 2 个或 2 个以上,也可以为 1
“
个,虽然这时候已经没有 局
”
部 的必要。