background image

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

个,虽然这时候已经没有 局

部 的必要。