Usar atributos

Completado

Los atributos representan o almacenan metadatos sobre los comportamientos de clases y métodos. Se puede adjuntar un atributo simplemente al escribir el nombre del atributo encerrado entre corchetes antes de la declaración de clase o función donde debe aplicarse.

Ejemplo

Por ejemplo, el atributo SysObsoleteAttribute(message,setError) se puede usar en métodos o clases que ya no se deben usar. Durante el proceso de creación, se notificará al usuario con un mensaje detallado que aparece en las ventanas de salida. El primer parámetro es el mensaje y el segundo parámetro indica si se debe establecer un error (verdadero) o una advertencia (falso). Puede hacer que el compilador rechace o muestre una advertencia.

Si la API ya no funciona, establezca isError = true en el atributo SysObsoleteAttribute para que el compilador informe sobre cualquier uso de esa API como un error del compilador

 [SysObsoleteAttribute("The Automobile class might have faster performance.", false)]
 internal class Bicycle
 {
    // Members of the Bicycle class go here.
 }

Clases de atributo

Los atributos también se pueden crear mediante el uso de clases de atributos. Para crear una clase de atributo, amplíe la clase SysAttribute al agregar extend SysAttribute al final de su declaración de clase. Después, puede decorar una clase con el atributo que se creó a partir de la clase de atributo. Puede especificar los parámetros de atributo desde el constructor. En el siguiente código, se crea la clase de atributo PracticeAttribute y, después, la clase RegularClass usa PracticeAttribute como un atributo.

Ejemplo

El siguiente ejemplo muestra la declaración y el diseño de una clase de atributo normal que podría crear.

 public class PracticeAttribute extends SysAttribute
 {
   // Fields in the classDeclaration.
   StartEnd startEndEnum;
   str reason;
 }
   // Constructor.
   public void new(StartEnd _startEndEnum, str _reason)
  {
    startEndEnum = _startEndEnum;
    reason = _reason;
  }
[PracticeAttribute(StartEnd::End, "Use the RegularClass class at the end.")]
 public class RegularClass
 {
    [PracticeAttribute(Startend::Start, "Use the rehearse method at the start.")]
	public int rehearse()
    {
      // Logic goes here.
        int rehearse;
        return rehearse;
    }
      // More fields and methods belong here.
 }

Los atributos tienen muchos usos, incluidos los siguientes:

  • Usar el atributo WebMethod en servicios web para indicar si el método debe ser invocable sobre el Protocolo simple de acceso a objetos (SOAP) para intercambiar información.
  • Usar DLLImportAttribute para llamar a código no administrado.
  • Describir el título, la versión, la descripción o la marca comercial de un ensamblado.
  • Describir cómo asignar entre clases, miembros y nodos de lenguaje de marcado extensible (XML) para la serialización.
  • Describir los requisitos de seguridad para los métodos.
  • Especificar características para garantizar la seguridad.
  • Obtener información sobre el llamamiento a un método.

Recursos

Para obtener más información, consulte Clases y métodos.