Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

CÓMO: Definir y utilizar propiedades en Visual Basic .NET

Este artículo se publicó anteriormente con el número E308230
Resumen
Un objetivo importante de muchos lenguajes de programación orientados a objetos es permitirle encapsular los detalles internos en una clase. Visual Basic .NET le permite definir propiedades para proporcionar acceso controlado a los detalles internos de una clase. En este artículo se describe cómo definir y utilizar propiedades en una aplicación de Visual Basic .NET.

Una propiedad puede ser de sólo lectura, de sólo escritura o de lectura y escritura. Los descriptores de acceso Get y Set proporcionan acceso de lectura y de escritura, respectivamente. Puede agregar código a estos descriptores de acceso para proporcionar la funcionalidad adecuada para obtener o configurar la propiedad.

En este artículo creará una clase llamada Employee. Dentro de esta clase definirá una propiedad de lectura y escritura para el nombre del empleado, una propiedad para leer el sueldo del empleado y otra propiedad para calcular cuánto tiempo lleva trabajando el empleado en la compañía. Después creará un objeto Employee en la aplicación y utilizará sus propiedades.

Volver al principio

Requisitos

En el presente artículo se da por supuesto que está familiarizado con los temas siguientes:
  • Sintaxis de Visual Basic .NET
  • Conceptos orientados a objetos
  • Microsoft Visual Studio .NET
Volver al principio

Crear una aplicación que contiene una clase de Visual Basic .NET

  1. Inicie Visual Studio .NET y cree un nuevo proyecto de aplicación de consola de Visual Basic .NET llamado EmployeeProperties.
  2. En el menú Proyecto, haga clic en Agregar clase. En el cuadro de diálogo Agregar nuevo elemento, escriba Employee.vb en el cuadro Nombre y, a continuación, haga clic en Abrir.
  3. Examine el código de la nueva clase en la ventana Ver código.
Volver al principio

Definir campos, constructores y métodos

  1. Agregue tres campos Private a la clase Employee de la manera siguiente:
    Private Name As StringPrivate Salary As DecimalPrivate HireDate As DateTime
  2. Defina un constructor para la clase con el fin de inicializar los campos de la clase Employee:
    Public Sub New(ByVal Name As String, _               ByVal Salary As Decimal, _               ByVal HireDate As DateTime)   Me.Name = Name   Me.Salary = Salary   Me.HireDate = HireDateEnd Sub
  3. Agregue un método Public a la clase:
    Public Sub PayRise(ByVal Amount As Decimal)   Me.Salary += AmountEnd Sub
Volver al principio

Definir propiedades en la clase

  1. Agregue el código siguiente para agregar una propiedad de lectura y escritura llamada FullName. El descriptor de acceso Get devuelve el nombre del empleado. El descriptor de acceso Set utiliza el parámetro Value que se pasa en el descriptor de acceso Set para establecer el nombre del empleado.
    Public Property FullName() As String   Get      Return Me.Name   End Get   Set(ByVal Value As String)      Me.Name = Value   End SetEnd Property
  2. Agregue el código siguiente para agregar una propiedad ReadOnly llamada Remuneration. El descriptor de acceso Get devuelve el sueldo del empleado. No hay ningún descriptor de acceso Set porque el sueldo no se puede establecer directamente; la única forma de cambiar el sueldo es llamar al método PayRise.
    Public ReadOnly Property Remuneration() As Decimal   Get      Return Me.Salary   End GetEnd Property
  3. Agregue el código siguiente para agregar otra propiedad ReadOnly llamada DaysSinceJoined. El descriptor de acceso Get calcula cuántos días ha trabajado el empleado para la compañía.
    Public ReadOnly Property DaysSinceJoined() As Integer   Get      Dim timespan As TimeSpan = DateTime.Now.Subtract(Me.HireDate)      return timespan.Days   End GetEnd Property
Volver al principio

Crear un objeto y utilizar las propiedades

  1. Muestre el código de Module1.vb en la ventana Ver código.
  2. En el método Main, utilice el operador New para crear un objeto Employee. Asigne la referencia de objeto a una variable local Employee del siguiente modo:
    Dim worker As New Employee( "Jayne Doe", _                             125000, _                             New DateTime(1998, 7, 31) )
  3. Agregue el código siguiente para cambiar la propiedad FullName del empleado. Esto invocará implícitamente el descriptor de acceso Set para la propiedad FullName.
    worker.FullName = "Jayne Lafayette"
  4. Agregue el código siguiente para mostrar los detalles del empleado mediante los descriptores de acceso Get para las propiedades FullName, Remuneration y DaysSinceJoined:
    Console.WriteLine("Nombre completo: " & worker.FullName)Console.WriteLine("Remuneración: " & worker.Remuneration)Console.WriteLine("Días trabajados: " & worker.DaysSinceJoined)
Volver al principio

Comprobar que funciona

  1. Genere y ejecute la aplicación.
  2. La aplicación mostrará la siguiente información en la consola (el valor "Días trabajados" depende de la fecha actual):
    Nombre completo: Jayne LafayetteRemuneración: 125000Días trabajados: 1139
  3. Vuelva al archivo Module1.vb en la ventana Ver código y agregue el código siguiente al final del método Main:
    worker.Remuneration = 1000000
  4. Pruebe a generar la aplicación. Aparecerá un error de compilación porque Remuneration es una propiedad de sólo lectura.
  5. Cambie la instrucción de la manera siguiente:
    worker.Salary = 1000000
  6. Pruebe a generar de nuevo la aplicación. Aparecerá otro error de compilación porque el campo Salary está marcado como Private. La única forma de modificar el sueldo del empleado es utilizar el método público PayRise.
Volver al principio
Propiedades

Id. de artículo: 308230 - Última revisión: 01/15/2002 10:07:00 - Revisión: 1.0

  • Microsoft Visual Basic .NET 2002 Standard Edition
  • kbhowto kbhowtomaster KB308230
Comentarios