¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo

4.8 Atributos

Visual Studio .NET 2003

El lenguaje de Visual Basic .NET permite al programador especificar información declarativa acerca de las entidades que se definen en el programa. Por ejemplo, si se fija un método de clase con los modificadores Public, Protected, Friend, Protected Friend, o Private, se especifica su tipo de acceso.

Con Visual Basic .NET los programadores también pueden inventar nuevas clases de información declarativa y especificarlas en varias entidades de programas. Estas nuevas clases de información declarativa se definen mediante la declaración de clases de atributos, que pueden tener parámetros de posición e inicializadores de variable o propiedad. Por ejemplo, un marco de trabajo podría definir un atributo Help que se puede colocar en elementos del programa tales como clases y métodos para proporcionar una asignación desde los elementos de programa a la documentación, como se demuestra en el siguiente ejemplo:

Imports System
<AttributeUsage(AttributeTargets.All)> Public Class HelpAttribute
   Inherits Attribute
   
   Public Sub New(urlValue As String)
      Me.urlValue = urlValue
   End Sub
   Public Topic As String = Nothing
   Private urlValue As String
   
   Public ReadOnly Property Url() As String
      Get
         Return urlValue
      End Get
   End Property
End Class

El ejemplo define una clase de atributo denominada HelpAttribute, o Help de forma abreviada, que tiene un parámetro posicional (url)y un argumento con nombre (Topic). Los parámetros posicionales los definen los parámetros formales para constructores Public de la clase de atributo y los parámetros con nombre los definen las propiedades de lectura y escritura Public de la clase de atributo.

El ejemplo siguiente muestra varios usos del atributo:

<Help("http://www.example.com/.../Class1.htm")> Public Class Class1
   <Help("http://www.example.com/.../Class1.htm", Topic := "F")> Public Sub F()
   End Sub
End Class

La nueva información declarativa se especifica en las entidades a través de los bloques de atributos. Todos los atributos individuales especificados en las declaraciones se pueden recuperar en tiempo de ejecución mediante .NET Framework.

El ejemplo siguiente comprueba si Class1 tiene un atributo Help y escribe los valores de Topic y de Url asociados si el atributo está presente.

Imports System
Class Test
   Shared Sub Main()
      Dim type As Type = GetType(Class1)
      Dim arr As Object() = type.GetCustomAttributes(GetType(HelpAttribute), true)
      If arr.Length = 0 Then
         Console.WriteLine("Class1 has no Help attribute.")
      Else
         Dim ha As HelpAttribute = CType(arr(0), HelpAttribute)
         Console.WriteLine("Url = " & ha.Url & "Topic = " & ha.Topic)
      End If
   End Sub
End Class

Vea también

Declaraciones | Herencia | Implementación | Polimorfismo | Tipos de acceso | Ámbito | Nombres de tipos y espacios de nombres | Atributos (Conceptos del lenguaje Visual Basic)

Mostrar:
© 2015 Microsoft