1º Crear una clase en la que dispongamos de:
Una variable privada,
Una variable pública.
Una propiedad y su variable interna.
Una propiedad solo lectura, y su variable interna.
Una propiedad solo asignación, y su variable interna.
Public Class Ejercicio
Dim Variable As String = "Valor por defecto"
Public DatoExterno As String = "Valor por defecto"
Dim Propie As String
Dim PropieLectura As Integer
Dim PropieAsignac As String
Property Propiedad() as String
Get
Return Propie ' Lectura
End Get
Set(ByVal value as String)
Propie = value ' Asignación
End Set
End Property
WriteOnly Property PropiedadAsignacion() as String
Set(ByVal value as String)
PropieAsignac = value ' Asignación
End Set
End Property
ReadOnly Property PropiedadLectura() as Integer
Get
Return PropieLectura ' Lectura
End Get
End Property
End Class
2º A la clase anterior asignar datos a las variables en su declaración.
Modificar los contenidos de esas variables a través de sus propiedades, realizando un control en función del tipo de dato a introducir.
Visualizar los contenidos antes y después de los cambios.
Public Class Ejercicio
Dim Variable As String = "Valor por defecto"
Public DatoExterno As String = "Valor por defecto"
Dim Propie As String = "Valor por defecto"
Dim PropieLectura As Integer = 3
Dim PropieAsignac As String = "Valor por defecto"
Property Propiedad() As String
Get
Return Propie ' Lectura
End Get
Set(ByVal value As String)
If value <> "" Then Propie = value ' Asignación
End Set
End Property
WriteOnly Property PropiedadAsignacion() As String
Set(ByVal value As String)
If value <> "" Then PropieAsignac = value ' Asignación
End Set
End Property
ReadOnly Property PropiedadLectura() As Integer
Get
Return PropieLectura ' Lectura
End Get
End Property
End Class
Module Module1
Sub Main()
Dim Objeto As New Ejercicio ' ("Nuevo")
Console.WriteLine("Antes {0} ", Objeto.DatoExterno)
Objeto.DatoExterno = "Nuevo dato"
Console.WriteLine("Después {0} ", Objeto.DatoExterno)
Console.WriteLine("Antes {0} ", Objeto.Propiedad)
Objeto.Propiedad = "Nuevo valor"
Console.WriteLine("Después {0} ", Objeto.Propiedad)
Console.WriteLine("Antes {0} ", Objeto.PropiedadLectura)
' no se puede asignar es read only, solo lectura
' Objeto.PropiedadLectura = 25
Console.WriteLine("Después {0} ", Objeto.PropiedadLectura)
' no se puede leer es write Only
' Console.WriteLine("Antes {0} ", Objeto.PropiedadAsignacion)
Objeto.PropiedadAsignacion = "Nuevo valor"
' no se puede leer es write Only
' Console.WriteLine("Después {0} ", Objeto.PropiedadAsignacion)
Console.ReadKey()
End Sub
End Module
3º Añadir a la clase anterior el método new, de forma que se pueda cargar los valores iniciales de las propiedades en el mismo.
Public Class Ejercicio
Dim Variable As String = "Valor por defecto"
Public DatoExterno As String = "Valor por defecto"
Dim Propie As String = "Valor por defecto"
Dim PropieLectura As Integer = 3
Dim PropieAsignac As String = "Valor por defecto"
Property Propiedad() As String
Get
Return Propie ' Lectura
End Get
Set(ByVal value As String)
If value <> "" Then Propie = value ' Asignación
End Set
End Property
WriteOnly Property PropiedadAsignacion() As String
Set(ByVal value As String)
If value <> "" Then PropieAsignac = value ' Asignación
End Set
End Property
ReadOnly Property PropiedadLectura() As Integer
Get
Return PropieLectura ' Lectura
End Get
End Property
Sub New(ByVal Prop As String, _
ByVal PropLec As Integer, _
ByVal PropAsig As String)
If Prop <> "" Then Propie = Prop
If PropLec <> 0 Then PropieLectura = PropLec
If PropAsig <> "" Then PropieAsignac = PropAsig
End Sub
End Class
Module Module1
Sub Main()
Dim Objeto As New Ejercicio("Valor prop en new", 23, "Valor PropAsig en New")
Console.WriteLine("Antes {0} ", Objeto.DatoExterno)
Objeto.DatoExterno = "Nuevo dato"
Console.WriteLine("Después {0} ", Objeto.DatoExterno)
Console.WriteLine("Antes {0} ", Objeto.Propiedad)
Objeto.Propiedad = "Nuevo valor"
Console.WriteLine("Después {0} ", Objeto.Propiedad)
Console.WriteLine("Antes {0} ", Objeto.PropiedadLectura)
' no se puede asignar es read only, solo lectura
' Objeto.PropiedadLectura = 25
Console.WriteLine("Después {0} ", Objeto.PropiedadLectura)
' no se puede leer es write Only
' Console.WriteLine("Antes {0} ", Objeto.PropiedadAsignacion)
Objeto.PropiedadAsignacion = "Nuevo valor"
' no se puede leer es write Only
' Console.WriteLine("Después {0} ", Objeto.PropiedadAsignacion)
Console.ReadKey()
End Sub
End Module
Observar como en la ejecución no se modifica el valor de la propiedad solo lectura.
Síguenos en: Facebook Sobre aulaClic Política de Cookies