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:
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.