Partial (Visual Basic)
更新:2007 年 11 月
指出類別或結構宣告是類別或結構的部分定義。
您可以使用 Partial 關鍵字,來分割數個宣告間類別或結構的定義。請視需要在數個不同的原始程式檔 (Source File) 中,使用數個所需要的部分宣告。不過,所有的宣告都必須位於相同的組件 (Assembly) 和命名空間中。
注意事項: |
---|
Visual Basic 2008 引進了可在部分類別中使用的「部分方法」(Partial Method)。如需詳細資訊,請參閱部分方法和Sub 陳述式 (Visual Basic)。 |
[ <attrlist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] _
Partial { Class | Structure } name [ (Of typelist) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ variabledeclarations ]
[ proceduredeclarations ]
{ End Class | End Structure }
參數
attrlist
選擇項,套用至這個類別或結構的屬性 (Attribute) 清單。您必須以角括弧 (< >) 將屬性清單括起來。accessmodifier
選擇項。指定可存取這個類別或結構的程式碼。請參閱 Visual Basic 中的存取層級。Shadows
選擇項,請參閱 Shadows。MustInherit
選擇項,請參閱 MustInherit。NotInheritable
選擇項,請參閱 NotInheritable。name
必要項。這個類別或結構的名稱。必須符合在相同類別或結構之所有其他部分宣告中所定義的名稱。Of
選擇項。指定這是泛型類別或結構。請參閱 Visual Basic 中的泛型型別。Inherits
選擇項,請參閱 Inherits 陳述式。classname
如果會使用 Inherits,則此為必要項。衍生這個類別之來源類別或介面的名稱。Implements
選擇項,請參閱 Implements 陳述式。interfacenames
如果會使用 Implements,則此為必要項。此類別或結構所實作的介面名稱。variabledeclarations
選擇項。宣告類別或結構之其他變數和事件的陳述式 (Statement)。proceduredeclarations
選擇項。宣告和定義類別或結構之其他程序的陳述式。End Class 或End Structure
結束這個部分 Class 或 Structure 定義。
備註
Visual Basic 會使用部分類別定義,在不同的原始程式檔中將所產生的程式碼與使用者撰寫的程式碼隔開。例如,[Windows Form 設計工具] 會定義控制項的部分類別 (例如 Form)。您不應該修改這些控制項中所產生的程式碼。
建立部分類別或結構時,會套用可用來建立類別和結構的所有規則 (Rule) (例如,修飾詞 (Modifier) 用法和繼承 (Inheritance) 的規則)。
最佳作法
在一般情況下,您不應該跨兩個或以上的宣告,來分割單一類別或結構的開發。因此,在大部分情況下,並不需要 Partial 關鍵字。
為了增加可讀性,類別或結構的每個部分宣告都應包含 Partial 關鍵字。編譯器 (Compiler) 最多允許一個略過關鍵字的部分宣告,如果有兩個以上的部分宣告略過了關鍵字,編譯器便會發出錯誤的信號。
行為
宣告的等位:編譯器會將類別或結構視為其所有部分宣告的等位。每個部分定義的每個修飾詞都會套用至整個類別或結構,而每個部分定義的每個成員則可用於整個類別或結構。
在模組中,部分型別不允許型別提升:如果部分定義是在模組內,則該類別或結構的型別提升會自動失效。在這類情況下,一組部分定義會產生未預期的結果,甚至會產生編譯器錯誤。如需詳細資訊,請參閱型別提升。
只有在完整路徑名稱完全相同的情況下,編譯器才會合併部分定義。
Partial 關鍵字可用於以下內容中:
範例
下列範例會將類別 sampleClass 的定義分割成兩個宣告,而每個宣告都會定義不同的 Sub 程序。
Partial Public Class sampleClass
Public Sub sub1()
End Sub
End Class
Partial Public Class sampleClass
Public Sub sub2()
End Sub
End Class
以上範例中的這兩個部分定義可位於相同的原始程式檔中,或位於兩個不同的原始程式檔中。