Partial (Visual Basic)Partial (Visual Basic)

Indica que una declaración de tipo es una definición parcial del tipo.Indicates that a type declaration is a partial definition of the type.

Puede dividir la definición de un tipo en varias declaraciones con la palabra clave Partial.You can divide the definition of a type among several declarations by using the Partial keyword. Puede usar todas las declaraciones parciales que quiera en todos los archivos de código fuente que desee,You can use as many partial declarations as you want, in as many different source files as you want. pero todas las declaraciones deben estar en el mismo ensamblado y en el mismo espacio de nombres.However, all the declarations must be in the same assembly and the same namespace.

Nota

Visual Basic admite métodos parciales, que normalmente se implementan en clases parciales.Visual Basic supports partial methods, which are typically implemented in partial classes. Para obtener más información, consulte métodos parciales y Sub (instrucción).For more information, see Partial Methods and Sub Statement.

SintaxisSyntax

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

ElementosParts

TérminoTerm DefiniciónDefinition
attrlist Opcional.Optional. Lista de atributos que se aplican a este tipo.List of attributes that apply to this type. Debe incluir el lista de atributos en corchetes angulares (< >).You must enclose the Attribute List in angle brackets (< >).
accessmodifier Opcional.Optional. Especifica qué código puede tener acceso a este tipo.Specifies what code can access this type. Vea Access levels in Visual Basic.See Access levels in Visual Basic.
Shadows Opcional.Optional. Consulte sombras.See Shadows.
MustInherit Opcional.Optional. Consulte MustInherit.See MustInherit.
NotInheritable Opcional.Optional. Consulte NotInheritable.See NotInheritable.
name Obligatorio.Required. Nombre de este tipo.Name of this type. Debe coincidir con el nombre definido en el resto de las declaraciones parciales del mismo tipo.Must match the name defined in all other partial declarations of the same type.
Of Opcional.Optional. Especifica que se trata de un tipo genérico.Specifies that this is a generic type. Consulte tipos genéricos en Visual Basic.See Generic Types in Visual Basic.
typelist Es necesario si se usan de.Required if you use Of. Consulte escriba lista.See Type List.
Inherits Opcional.Optional. Consulte Inherits (instrucción).See Inherits Statement.
classname Obligatorio si se usa Inherits.Required if you use Inherits. El nombre de la clase o la interfaz de la que se deriva esta clase.The name of the class or interface from which this class derives.
Implements Opcional.Optional. Consulte implementa instrucción.See Implements Statement.
interfacenames Obligatorio si se usa Implements.Required if you use Implements. Los nombres de las interfaces que implementa este tipo.The names of the interfaces this type implements.
variabledeclarations Opcional.Optional. Instrucciones que declaran variables adicionales y eventos para el tipo.Statements which declare additional variables and events for the type.
proceduredeclarations Opcional.Optional. Instrucciones que declaran y definen procedimientos adicionales para el tipo.Statements which declare and define additional procedures for the type.
End Class o End StructureEnd Class or End Structure Finaliza esta definición Class o Structure parcial.Ends this partial Class or Structure definition.

ComentariosRemarks

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.Visual Basic uses partial-class definitions to separate generated code from user-authored code in separate source files. Por ejemplo, el Diseñador de Windows FormsForm define clases parciales para controles como .For example, the Windows Form Designer defines partial classes for controls such as Form. No debe modificar el código generado en estos controles.You should not modify the generated code in these controls.

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.All the rules for class, structure, interface, and module creation, such as those for modifier usage and inheritance, apply when creating a partial type.

Procedimientos recomendadosBest Practices

  • En circunstancias normales no debe dividir el desarrollo de un solo tipo en dos o más declaraciones.Under normal circumstances, you should not split the development of a single type across two or more declarations. Por lo tanto, en la mayoría de los casos no necesita la palabra clave Partial.Therefore, in most cases you do not need the Partial keyword.

  • Para mejorar la legibilidad, cada declaración parcial de un tipo debe incluir la palabra clave Partial.For readability, every partial declaration of a type should include the Partial keyword. 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.The compiler allows at most one partial declaration to omit the keyword; if two or more omit it the compiler signals an error.

ComportamientoBehavior

  • Unión de declaraciones.Union of Declarations. El compilador trata el tipo como la unión de todas sus declaraciones parciales.The compiler treats the type as the union of all its partial declarations. 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.Every modifier from every partial definition applies to the entire type, and every member from every partial definition is available to the entire type.

  • Promoción de tipos no permitida para los tipos parciales en módulos.Type Promotion Not Allowed For Partial Types in Modules. Si una definición parcial está dentro de un módulo, se rechaza automáticamente la promoción de tipos de ese tipo.If a partial definition is inside a module, type promotion of that type is automatically defeated. En este caso, un conjunto de definiciones parciales puede producir resultados inesperados e incluso errores del compilador.In such a case, a set of partial definitions can cause unexpected results and even compiler errors. Para obtener más información, consulte promoción de tipos.For more information, see Type Promotion.

    El compilador solo combina las definiciones parciales cuando sus rutas de acceso completas son idénticas.The compiler merges partial definitions only when their fully qualified paths are identical.

La palabra clave Partial se puede usar en los siguientes contextos:The Partial keyword can be used in these contexts:

Class (instrucción)Class Statement

Structure (instrucción)Structure Statement

EjemploExample

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.The following example splits the definition of class sampleClass into two declarations, each of which defines a different Sub procedure.

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.The two partial definitions in the preceding example could be in the same source file or in two different source files.

Vea tambiénSee also