不完全类型

在计算中，一个不完全类型是一种特殊的数据类型，它的定义会跨越多个源文件。在面向对象编程中会由于一些不同的原因用到：性能和成本常常会阻止使用几个分离的类；代码生成工具的使用越来越多，而将机器生成的代码和程序员写的代码分离开来，则会十分方便。

C#中的不完全类型
不完全类型是C# 2.0的一个特性。用于建立一个不完全类定义的语法如下：

SourceFile1.cs
public partial class ExampleClass
{
   public void SomeFunction()
   {
       // ...
   }
}

SourceFile2.cs

public partial class ExampleClass
{
   public void SomeOtherFunction()
   {
       // ...
   }
}

在 C# 2.0之前的版本，这会造成一个编译错误，因为同样的类重复定义了两次（同样也因为partial关键字）。在C#2.0中，它会被看作为一个单一的类定义。其它C#2.0的新特性包括匿名方法、迭代子和泛型（类似于C++中的模板）。

使用不完全类对生成的代码没有任何影响（(unless editor meta-data is emitted).

C/C++中的不完全类型
C/C++中不完全类型有三种不同形式： void、未指定长度的数组以及具有非指定内容的结构和联合。使用不完全类型的指针或引用，不需要知道类型的全部内容。另外也用于解决对象类型及其成员之间的类型循环依赖。
面向对象的程序设计
数据类型