La asignación sin control de los datos puede realizarse tanto en la propiedad, como en la variable.
En la propiedad podemos observar que hemos eliminado el código de validación, y que solo queda la asignación:
Set(ByVal value as String)
DatoInterno = value ‘ Asignación
End Set
La propiedad quedaría pues, de esta forma:
Property Propiedad() as String
Get
Return DatoInterno ‘ Lectura
End Get
Set(ByVal value as String)
DatoInterno = value ‘ Asignación
End Set
End Property
La otra posibilidad es la de declarar como variable pública el dato a utilizar y el usuario puede asignar valores de forma libre.
Public DatoExterno As String
Evidentemente sería adecuado que esa variable fuera inicializada, para de esa forma evitar o reducir problemas.
Public DatoExterno As String = “Valor por defecto”
Con éste programa
Sub Main()
Dim Objeto As New Ejemplo("Contenido de la propiedad")
Console.WriteLine(Objeto.DatoExterno)
Objeto.DatoExterno = ""
Console.WriteLine(Objeto.DatoExterno)
Objeto.DatoExterno = "Nuevo valor"
Console.WriteLine(Objeto.DatoExterno)
Console.ReadKey()
End Sub
La ejecución quedaría como sigue:
Valor por defecto
Nuevo valor
La línea en blanco es la que provoca ésta instrucción
Objeto.DatoExterno = ""
Console.WriteLine(Objeto.DatoExterno)
La clase completa de éste ejemplo quedaría:
Public Class Ejemplo
Dim DatoInterno As String = "Valor por defecto"
Private OtroInterno As Integer
Public DatoExterno As String = "Valor por defecto"
Property Propiedad() as String
Get
Return DatoInterno ' Lectura
End Get
Set(ByVal value as String)
DatoInterno = value ' Asignación
End Set
End Property
Sub New(ByVal Dato As String)
If Dato <> "" Then DatoInterno = Dato
End Sub
End Class
Se trata con ésta opción de disponer solo de la posibilidad de utilizar los valores de una propiedad pero no permitir su modificación por parte del usuario de la clase, del objeto.
Para ello utilizamos la siguiente sintaxis.
ReadOnly Property Propiedad()
Get
Return DatoInterno ' Lectura
End Get
End Property
Podemos comprobar como desaparece la parte de asignación, Set, y además si intentamos escribirla nos dará error de sintaxis.
Se trata del caso contrario, permitir que solo pueda asignarse datos pero no su visualización, su lectura.
WriteOnly Property Propiedad() as String
Set(ByVal value as String)
DatoInterno = value ' Asignación
End Set
End Property
El uso de la propiedad es como en el resto de casos en los que utilizamos una variable, con las restricciones expuestas de lectura y escritura, pero no hay cambios, se pueden usar como una variable más.
Precauciones a tomar, tener presente que los cambios en una propiedad, afectan al objeto del cual depende, y si tenemos varios objetos de la misma clase, estar seguros sobre cual hacemos los cambios, o cual es el que estamos utilizando.
Es posible crear una clase de la que se deriven objetos que únicamente contienen datos, información y también la de crear una estructura válida con la misma.
Hemos visto el uso de los datos en una clase, propiedades, variables públicas, sus condiciones de uso y la forma de controlar los datos.
Lo principal es tener presente que es muy útil declarar las variables inicializadas a valores que sean prácticos para el uso por defecto del objeto.
Pero, además exigir en el método new, el constructor, la inserción de los datos que sean necesarios para la inicialización del objeto.
![]() |
Síguenos en: Facebook Sobre aulaClic Política de Cookies