Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una propiedad predeterminada es una propiedad de clase o estructura a la que el código puede tener acceso sin especificarla. Cuando el código llama a una clase o estructura por su nombre, pero no a una propiedad, y el contexto permite el acceso a una propiedad, Visual Basic resuelve el acceso a la propiedad predeterminada de esa clase o estructura si esta existe.
Una clase o estructura puede tener como máximo una propiedad predeterminada. Sin embargo, puede sobrecargar una propiedad predeterminada y tener más de una versión de ella.
Para obtener más información, consulte Valor predeterminado.
Para declarar una propiedad predeterminada
Declare la propiedad de la manera normal. No especifique la
Shared
palabra clave oPrivate
.Incluya la
Default
palabra clave en la declaración de propiedad.Especifique al menos un parámetro para la propiedad . No se puede definir una propiedad predeterminada que no tome al menos un argumento.
Default Property myProperty(ByVal index As Integer) As String
Para llamar a una propiedad predeterminada
Declare una variable del tipo de clase o estructura contenedora.
Dim x As New class1(3)
Use solo el nombre de la variable en una expresión donde normalmente incluiría el nombre de propiedad.
MsgBox(x)
Siga el nombre de la variable con una lista de argumentos entre paréntesis. Una propiedad predeterminada debe tomar al menos un argumento.
MsgBox(x(1))
Para obtener el valor de la propiedad predeterminado, use el nombre de la variable, con una lista de argumentos entre paréntesis, en una expresión o después del signo igual (
=
) en una instrucción de asignación.MsgBox(x(1) & x(2) & x(3))
Para establecer el valor de propiedad predeterminado, use el nombre de la variable, con una lista de argumentos, en el lado izquierdo de una instrucción de asignación.
x(1) = "Hello" x(2) = " " x(3) = "World"
Siempre puede especificar el nombre de propiedad predeterminado junto con el nombre de la variable, como haría para tener acceso a cualquier otra propiedad.
x.myProperty(1) = "Hello" x.myProperty(2) = " " x.myProperty(3) = "World"
Ejemplo 1
En el ejemplo siguiente se declara una propiedad predeterminada en una clase .
Public Class class1
Private myStrings() As String
Sub New(ByVal size As Integer)
ReDim myStrings(size)
End Sub
Default Property myProperty(ByVal index As Integer) As String
Get
' The Get property procedure is called when the value
' of the property is retrieved.
Return myStrings(index)
End Get
Set(ByVal Value As String)
' The Set property procedure is called when the value
' of the property is modified.
' The value to be assigned is passed in the argument
' to Set.
myStrings(index) = Value
End Set
End Property
End Class
Ejemplo 2
En el ejemplo siguiente se muestra cómo llamar a la propiedad myProperty
predeterminada en la clase class1
. Las tres instrucciones de asignación almacenan valores en myProperty
y la MsgBox llamada lee los valores.
Sub Test()
Dim x As New class1(3)
x(1) = "Hello"
x(2) = " "
x(3) = "World"
MsgBox(x(1) & x(2) & x(3))
End Sub
El uso más común de una propiedad predeterminada es la Item[] propiedad en varias clases de colección.
Programación sólida
Las propiedades predeterminadas pueden dar lugar a una pequeña reducción de los caracteres de código fuente, pero pueden dificultar la lectura del código. Si el código de llamada no está familiarizado con su clase o estructura, cuando hace referencia al nombre de clase o estructura, no puede estar seguro de si esa referencia tiene acceso a la clase o a la propia estructura, o a una propiedad predeterminada. Esto puede provocar errores del compilador o errores de lógica en tiempo de ejecución sutiles.
Puede reducir algo la posibilidad de errores de propiedad predeterminada empleando siempre la instrucción Option Strict para establecer la comprobación de tipos del compilador en On
.
Si planea usar una clase o estructura predefinidas en el código, debe determinar si tiene una propiedad predeterminada y, si es así, cuál es su nombre.
Debido a estas desventajas, debe considerar no definir las propiedades predeterminadas. Para la legibilidad del código, también debe considerar la posibilidad de hacer referencia siempre a todas las propiedades explícitamente, incluso a las propiedades predeterminadas.
Consulte también
- Procedimientos de propiedad
- Parámetros y argumentos del procedimiento
- Declaración de Propiedad
- Predeterminado
- Diferencias entre propiedades y variables en Visual Basic
- Cómo: Crear una propiedad
- Procedimiento para declarar una propiedad con niveles de acceso mixto
- Procedimiento: Llamar a un procedimiento de propiedad
- Cómo: Colocar un valor en una propiedad
- Cómo: Obtener un valor de una propiedad