Property StatementProperty Statement

Declara el nombre de una propiedad y los procedimientos de propiedad que se utiliza para almacenar y recuperar el valor de la propiedad.Declares the name of a property, and the property procedures used to store and retrieve the value of the property.

SintaxisSyntax

[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
    [ <attributelist> ] [ accessmodifier ] Get
        [ statements ]
    End Get
    [ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
        [ statements ]
    End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]

ElementosParts

  • attributelist

    Opcional.Optional. Lista de atributos que se aplican a esta propiedad o Get o Set procedimiento.List of attributes that apply to this property or Get or Set procedure. Consulte lista de los atributos.See Attribute List.

  • Default

    Opcional.Optional. Especifica que esta propiedad es la propiedad predeterminada para la clase o estructura en el que está definida.Specifies that this property is the default property for the class or structure on which it is defined. Las propiedades predeterminadas deben aceptar parámetros y se pueden establecer y recuperar sin especificar el nombre de propiedad.Default properties must accept parameters and can be set and retrieved without specifying the property name. Si se declara la propiedad como Default, no puede usar Private en la propiedad o en cualquiera de sus procedimientos de propiedad.If you declare the property as Default, you cannot use Private on the property or on either of its property procedures.

  • accessmodifier

    Opcional en el Property instrucción y en al menos uno de los Get y Set instrucciones.Optional on the Property statement and on at most one of the Get and Set statements. Puede ser uno de los siguientes:Can be one of the following:

    Vea Access levels in Visual Basic.See Access levels in Visual Basic.

  • propertymodifiers

    Opcional.Optional. Puede ser uno de los siguientes:Can be one of the following:

  • Shared

    Opcional.Optional. Consulte compartido.See Shared.

  • Shadows

    Opcional.Optional. Consulte sombras.See Shadows.

  • ReadOnly

    Opcional.Optional. Consulte ReadOnly.See ReadOnly.

  • WriteOnly

    Opcional.Optional. Consulte WriteOnly.See WriteOnly.

  • Iterator

    Opcional.Optional. Consulte iterador.See Iterator.

  • name

    Obligatorio.Required. Nombre de la propiedad.Name of the property. Vea Declared Element Names.See Declared Element Names.

  • parameterlist

    Opcional.Optional. Lista de nombres de variable local que representa los parámetros de esta propiedad y los posibles parámetros adicionales de la Set procedimiento.List of local variable names representing the parameters of this property, and possible additional parameters of the Set procedure. Consulte Lista_de_parámetros.See Parameter List.

  • returntype

    Es necesario si Option Strict es On.Required if Option Strict is On. Tipo de datos del valor devuelto por esta propiedad.Data type of the value returned by this property.

  • Implements

    Opcional.Optional. Indica que esta propiedad implementa una o varias propiedades, cada uno definido en una interfaz implementada por la clase o estructura contenedora de esta propiedad.Indicates that this property implements one or more properties, each one defined in an interface implemented by this property's containing class or structure. Consulte implementa instrucción.See Implements Statement.

  • implementslist

    Es necesario si se proporciona Implements.Required if Implements is supplied. Lista de propiedades que se implementan.List of properties being implemented.

    implementedproperty [ , implementedproperty ... ]

    Cada implementedproperty tiene la sintaxis y las partes siguientes:Each implementedproperty has the following syntax and parts:

    interface.definedname

    PartePart DescripciónDescription
    interface Obligatorio.Required. Nombre de una interfaz implementada por esta propiedad contenedora de clase o estructura.Name of an interface implemented by this property's containing class or structure.
    definedname Obligatorio.Required. Nombre por el que se define la propiedad en interface.Name by which the property is defined in interface.
  • Get

    Opcional.Optional. Necesario si la propiedad se marca WriteOnly.Required if the property is marked WriteOnly. Se inicia un Get procedimiento de propiedad que se usa para devolver el valor de la propiedad.Starts a Get property procedure that is used to return the value of the property.

  • statements

    Opcional.Optional. Bloque de instrucciones que se ejecutan dentro de la Get o Set procedimiento.Block of statements to run within the Get or Set procedure.

  • End Get

    Finaliza el Get procedimiento de propiedad.Terminates the Get property procedure.

  • Set

    Opcional.Optional. Necesario si la propiedad se marca ReadOnly.Required if the property is marked ReadOnly. Se inicia un Set procedimiento de propiedad que se usa para almacenar el valor de la propiedad.Starts a Set property procedure that is used to store the value of the property.

  • End Set

    Finaliza el Set procedimiento de propiedad.Terminates the Set property procedure.

  • End Property

    Termina la definición de esta propiedad.Terminates the definition of this property.

ComentariosRemarks

El Property instrucción introduce la declaración de una propiedad.The Property statement introduces the declaration of a property. Una propiedad puede tener un Get procedimiento (solo lectura), un Set procedimiento (solo escritura), o ambas (lectura y escritura).A property can have a Get procedure (read only), a Set procedure (write only), or both (read-write). Puede omitir el Get y Set procedimiento cuando se usa una propiedad implementada automáticamente.You can omit the Get and Set procedure when using an auto-implemented property. Para obtener más información, vea Propiedades implementadas automáticamente.For more information, see Auto-Implemented Properties.

Puede usar Property sólo en el nivel de clase.You can use Property only at class level. Esto significa que el contexto de declaración para una propiedad debe ser una clase, estructura, módulo o interfaz y no puede ser un archivo de código fuente, espacio de nombres, procedimiento o bloque.This means the declaration context for a property must be a class, structure, module, or interface, and cannot be a source file, namespace, procedure, or block. Para obtener más información, vea Declaration Contexts and Default Access Levels (Contextos de declaración y niveles de acceso predeterminados).For more information, see Declaration Contexts and Default Access Levels.

De forma predeterminada, las propiedades utilizan acceso público.By default, properties use public access. Puede ajustar el nivel de acceso de una propiedad con un modificador de acceso en el Property statement y, opcionalmente, puede ajustar uno de sus procedimientos de propiedad a un nivel de acceso más restrictivo.You can adjust a property's access level with an access modifier on the Property statement, and you can optionally adjust one of its property procedures to a more restrictive access level.

Visual Basic pasa un parámetro a la Set procedimiento durante las asignaciones de propiedad.Visual Basic passes a parameter to the Set procedure during property assignments. Si no proporciona un parámetro para Set, el entorno de desarrollo integrado (IDE) utiliza un parámetro implícito denominado value.If you do not supply a parameter for Set, the integrated development environment (IDE) uses an implicit parameter named value. Este parámetro contiene el valor que se asignará a la propiedad.This parameter holds the value to be assigned to the property. Se suele almacenar este valor en una variable local privada y devolverlo cada vez que el Get se llama al procedimiento.You typically store this value in a private local variable and return it whenever the Get procedure is called.

ReglasRules

  • Niveles de acceso mixtos.Mixed Access Levels. Si va a definir una propiedad de lectura y escritura, opcionalmente, puede especificar un nivel de acceso diferente para el Get o Set procedimiento, pero no ambos.If you are defining a read-write property, you can optionally specify a different access level for either the Get or the Set procedure, but not both. Si lo hace, el nivel de acceso del procedimiento debe ser más restrictivo que el nivel de acceso de la propiedad.If you do this, the procedure access level must be more restrictive than the property's access level. Por ejemplo, si se declara la propiedad Friend, puede declarar el Set procedimiento Private, pero no Public.For example, if the property is declared Friend, you can declare the Set procedure Private, but not Public.

    Si está definiendo un ReadOnly o WriteOnly propiedad, el procedimiento de propiedad único (Get o Set, respectivamente) representa toda la propiedad.If you are defining a ReadOnly or WriteOnly property, the single property procedure (Get or Set, respectively) represents all of the property. No se puede declarar un nivel de acceso diferente para este tipo de procedimiento, porque se establecerían dos niveles de acceso para la propiedad.You cannot declare a different access level for such a procedure, because that would set two access levels for the property.

  • Tipo de valor devuelto.Return Type. El Property instrucción puede declarar el tipo de datos del valor que devuelve.The Property statement can declare the data type of the value it returns. Puede especificar cualquier tipo de datos o el nombre de una enumeración, estructura, clase o interfaz.You can specify any data type or the name of an enumeration, structure, class, or interface.

    Si no especifica returntype, la propiedad devuelve Object.If you do not specify returntype, the property returns Object.

  • Implementación de.Implementation. Si usa esta propiedad la Implements debe tener la palabra clave, la clase o estructura que contiene un Implements instrucción inmediatamente posterior a su Class o Structure instrucción.If this property uses the Implements keyword, the containing class or structure must have an Implements statement immediately following its Class or Structure statement. El Implements instrucción debe incluir cada interfaz especificada en implementslist.The Implements statement must include each interface specified in implementslist. Sin embargo, el nombre por el que una interfaz define el Property (en definedname) no tiene que ser el mismo que el nombre de esta propiedad (en name).However, the name by which an interface defines the Property (in definedname) does not have to be the same as the name of this property (in name).

ComportamientoBehavior

  • Devolución desde un procedimiento de propiedad.Returning from a Property Procedure. Cuando el Get o Set procedimiento vuelve al código de llamada, la ejecución continúa con la instrucción que sigue a la instrucción que lo invocó.When the Get or Set procedure returns to the calling code, execution continues with the statement following the statement that invoked it.

    El Exit Property y Return instrucciones provocan una salida inmediata de un procedimiento de propiedad.The Exit Property and Return statements cause an immediate exit from a property procedure. Cualquier número de Exit Property y Return instrucciones pueden aparecer en cualquier lugar en el procedimiento, y puede mezclar Exit Property y Return instrucciones.Any number of Exit Property and Return statements can appear anywhere in the procedure, and you can mix Exit Property and Return statements.

  • Valor devuelto.Return Value. Para devolver un valor de un Get procedimiento, puede asignar el valor al nombre de propiedad o incluirlo en un Return instrucción.To return a value from a Get procedure, you can either assign the value to the property name or include it in a Return statement. En el ejemplo siguiente se asigna el valor devuelto al nombre de propiedad quoteForTheDay y, a continuación, usa el Exit Property instrucción para devolver.The following example assigns the return value to the property name quoteForTheDay and then uses the Exit Property statement to return.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property quoteForTheDay() As String
        Get
            quoteForTheDay = quoteValue
            Exit Property
        End Get
    End Property
    

    Si usas Exit Property sin asignar un valor a name, el Get procedimiento devuelve el valor predeterminado para el tipo de datos.If you use Exit Property without assigning a value to name, the Get procedure returns the default value for the property's data type.

    El Return instrucción al mismo tiempo asigna el Get procedimiento devolver valor y sale del procedimiento.The Return statement at the same time assigns the Get procedure return value and exits the procedure. En el ejemplo siguiente se muestra esto.The following example shows this.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property quoteForTheDay() As String
        Get
            Return quoteValue
        End Get
    End Property
    

EjemploExample

El ejemplo siguiente declara una propiedad en una clase.The following example declares a property in a class.

Class Class1
    ' Define a local variable to store the property value.
    Private propertyValue As String
    ' Define the property.
    Public Property prop1() As String
        Get
            ' The Get property procedure is called when the value
            ' of a property is retrieved.
            Return propertyValue
        End Get
        Set(ByVal value As String)
            ' The Set property procedure is called when the value 
            ' of a property is modified.  The value to be assigned
            ' is passed in the argument to Set.
            propertyValue = value
        End Set
    End Property
End Class

Vea tambiénSee also