不完全類型
外觀
在計算中,一個不完全類型是一種特殊的數據類型,它的定義會跨越多個源文件。在面向對象編程中會由於一些不同的原因用到:性能和成本常常會阻止使用幾個分離的類;代碼生成工具的使用越來越多,而將機器生成的代碼和程序員寫的代碼分離開來,則會十分方便。
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、未指定長度的數組以及具有非指定內容的結構和聯合。使用不完全類型的指針或引用,不需要知道類型的全部內容。另外也用於解決對象類型及其成員之間的類型循環依賴。