Partial (Visual Basic)

Indica que una declaración de tipo es una definición parcial del tipo.

Puede dividir la definición de un tipo en varias declaraciones con la palabra clave Partial. Puede usar todas las declaraciones parciales que quiera en todos los archivos de código fuente que desee, pero todas las declaraciones deben estar en el mismo ensamblado y en el mismo espacio de nombres.

Nota

Visual Basic admite los métodos parciales, que habitualmente se implementan en clases parciales. Para más información, consulte Métodos parciales e Instrucción Sub.

Sintaxis

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

Partes

Término Definición
attrlist Opcional. Lista de atributos que se aplican a este tipo. Debe incluir la lista de atributos entre corchetes angulares (< >).
accessmodifier Opcional. Especifica qué código puede tener acceso a este tipo. Vea Access levels in Visual Basic.
Shadows Opcional. Consulte Shadows.
MustInherit Opcional. Consulte MustInherit.
NotInheritable Opcional. Consulte NotInheritable.
name Necesario. Nombre de este tipo. Debe coincidir con el nombre definido en el resto de las declaraciones parciales del mismo tipo.
Of Opcional. Especifica que se trata de un tipo genérico. Consulte Tipos genéricos en Visual Basic.
typelist Obligatorio si se usa Of. Consulte Lista de tipos.
Inherits Opcional. Consulte Instrucción Inherits.
classname Obligatorio si se usa Inherits. El nombre de la clase o la interfaz de la que se deriva esta clase.
Implements Opcional. Consulte Instrucción Implements.
interfacenames Obligatorio si se usa Implements. Los nombres de las interfaces que implementa este tipo.
variabledeclarations Opcional. Instrucciones que declaran variables adicionales y eventos para el tipo.
proceduredeclarations Opcional. Instrucciones que declaran y definen procedimientos adicionales para el tipo.
End Class o End Structure Finaliza esta definición Class o Structure parcial.

Comentarios

Visual Basic usa definiciones de clase parcial para separar el código generado del código creado por el usuario en archivos de código fuente independientes. Por ejemplo, el Diseñador de Windows FormsForm define clases parciales para controles como . No debe modificar el código generado en estos controles.

Todas las reglas para crear clases, estructuras, interfaces y módulos, como las reglas de uso y herencia de modificadores, se aplican al crear un tipo parcial.

Prácticas recomendadas

  • En circunstancias normales no debe dividir el desarrollo de un solo tipo en dos o más declaraciones. Por lo tanto, en la mayoría de los casos no necesita la palabra clave Partial.

  • Para mejorar la legibilidad, cada declaración parcial de un tipo debe incluir la palabra clave Partial. El compilador permite a lo sumo una declaración parcial para omitir la palabra clave; si hay dos o más que la omiten, el compilador señala un error.

Comportamiento

  • Unión de declaraciones. El compilador trata el tipo como la unión de todas sus declaraciones parciales. Todos los modificadores de todas las definiciones parciales se aplican a todo el tipo; además, todos los miembros de todas las definiciones parciales están disponibles para todo el tipo.

  • Promoción de tipos no permitida para los tipos parciales en los módulos. Si una definición parcial está dentro de un módulo, se rechaza automáticamente la promoción de tipos de ese tipo. En este caso, un conjunto de definiciones parciales puede producir resultados inesperados e incluso errores del compilador. Para más información, consulte Promoción de tipo.

    El compilador solo combina las definiciones parciales cuando sus rutas de acceso completas son idénticas.

La palabra clave Partial se puede usar en los siguientes contextos:

Instrucción Class

Structure (Instrucción)

Ejemplo

En el ejemplo siguiente se divide la definición de la clase sampleClass en dos declaraciones, cada una de las cuales define otro procedimiento Sub.

Partial Public Class sampleClass
    Public Sub sub1()
    End Sub
End Class
Partial Public Class sampleClass
    Public Sub sub2()
    End Sub
End Class

Las dos definiciones parciales del ejemplo anterior podrían estar en el mismo archivo de origen o en dos archivos distintos.

Consulte también