部分 (Visual Basic)

指示类型声明是该类型的部分定义。

可以使用关键字在多个声明 Partial 之间划分类型的定义。 可以根据需要使用任意数量的分部声明,在任意数量的不同源文件中。 但是,所有声明都必须位于同一程序集和同一命名空间中。

注释

Visual Basic 支持 分部方法,这些方法通常在分部类中实现。 有关详细信息,请参阅分部方法和子语句

语法

[ <attrlist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] _  
Partial { Class | Structure | Interface | Module } name [ (Of typelist) ]  
    [ Inherits classname ]  
    [ Implements interfacenames ]  
    [ variabledeclarations ]  
    [ proceduredeclarations ]  
{ End Class | End Structure }  

部件

术语 定义
attrlist 可选。 应用于此类型的属性的列表。 必须将 属性列表 括在尖括号中(< >)。
accessmodifier 可选。 指定哪些代码可以访问此类型。 请参阅 Visual Basic 中的 Access 级别
Shadows 可选。 查看 阴影
MustInherit 可选。 请参阅 MustInherit
NotInheritable 可选。 请参阅 NotInheritable
name 必填。 此类型的名称。 必须与同一类型的所有其他分部声明中定义的名称匹配。
Of 可选。 指定这是泛型类型。 请参阅 Visual Basic 中的泛型类型
typelist 如果使用 Of,则为必需。 请参阅 类型列表
Inherits 可选。 请参阅 Inherits 语句
classname 如果使用 Inherits,则为必需 。 从中派生此类的类或接口的名称。
Implements 可选。 请参阅 Implements 语句
interfacenames 如果使用 Implements,则为必需 。 此类型实现的接口的名称。
variabledeclarations 可选。 声明类型的其他变量和事件的语句。
proceduredeclarations 可选。 声明和定义类型的其他过程的语句。
End ClassEnd Structure 结束此部分 ClassStructure 定义。

注解

Visual Basic 使用分部类定义将生成的代码与用户创作的代码分开到单独的源文件中。 例如, Windows 窗体设计器 为控件(如 Form.)定义分部类。 不应修改这些控件中生成的代码。

创建分部类型时,类、结构、接口和模块创建的所有规则(例如用于修饰符用法和继承的规则)均适用。

最佳做法

  • 在正常情况下,不应将单个类型的开发拆分为两个或多个声明。 因此,在大多数情况下,不需要关键字 Partial

  • 为了提高可读性,类型的每个部分声明都应包含 Partial 关键字。 编译器最多允许一个分部声明省略关键字;如果两个或更多个省略,编译器会发出错误信号。

行为

  • 声明联合。 编译器将类型视为其所有分部声明的并集。 每个部分定义中的每个修饰符都适用于整个类型,每个部分定义中的每个成员都可用于整个类型。

  • 模块中的分部类型不允许类型提升。 如果部分定义位于模块内,则会自动失败该类型的类型升级。 在这种情况下,一组部分定义可能会导致意外结果,甚至会导致编译器错误。 有关详细信息,请参阅 类型提升

    仅当完全限定的路径相同时,编译器才会合并部分定义。

关键字 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

前面的示例中的两个部分定义可以位于同一源文件或两个不同的源文件中。

另请参阅