Condividi tramite


Linee guida per l'utilizzo degli attributi

.NET Framework consente agli sviluppatori di creare nuovi tipi di informazioni dichiarative, specificare informazioni dichiarative per le diverse entità del programma e recuperare le informazioni sull'attributo in un ambiente di esecuzione. È possibile, ad esempio, che un framework definisca un attributo HelpAttribute che può essere inserito negli elementi del programma, ad esempio le classi e i metodi, per fornire un mapping tra gli elementi del programma e la relativa documentazione. Nuovi tipi di informazioni dichiarative vengono definiti tramite la dichiarazione di classi Attribute, che possono disporre di parametri posizionali e denominati. Per ulteriori informazioni sugli attributi, vedere Scrittura di attributi personalizzati.

Le linee guida per l'utilizzo delle classi Attribute sono definite dalle regole riportate di seguito.

  • Aggiungere il suffisso Attribute alle classi Attribute personalizzate come mostrato nell'esempio riportato di seguito.

    Public Class ObsoleteAttribute
    
    public class ObsoleteAttribute{}
    
  • Specificare AttributeUsage negli attributi per definirne con precisione l'uso come mostrato nell'esempio riportato di seguito.

    <AttributeUsage(AttributeTargets.All, Inherited := False, AllowMultiple := True)>  _
    
    Public Class ObsoleteAttribute
       Inherits Attribute
       ' Insert code here.
    End Class
    
    [AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
    public class ObsoleteAttribute: Attribute {}
    
  • Impostare come sealed le classi Attribute ogni volta che è possibile in modo che da esse non possano derivare classi.

  • Utilizzare argomenti posizionali, corrispondenti a parametri dei costruttori, per i parametri obbligatori. Fornire una proprietà di sola lettura con lo stesso nome di ciascun argomento posizionale, ma operare una distinzione cambiando l'uso delle maiuscole/minuscole. L'argomento risulta così accessibile in fase di esecuzione.

  • Utilizzare argomenti denominati per i parametri facoltativi e fornire una proprietà di lettura/scrittura per ciascun argomento denominato.

  • Non definire un parametro con argomenti sia denominati che posizionali. Nell'esempio di codice seguente viene illustrato questo modello.

    Public Class NameAttribute
       Inherits Attribute
       Private userNameValue as String
       Private ageValue as Integer
    
       ' This is a positional argument.
       Public Sub New(userName As String) 
          userNameValue = userName
       End Sub
    
       Public ReadOnly Property UserName() As String
          Get
             Return userNameValue 
          End Get
       End Property
    
       ' This is a named argument.
       Public Property Age() As Integer
          Get
             Return ageValue 
          End Get
          Set
             ageValue = value
          End Set 
       End Property
    End Class
    
    public class NameAttribute: Attribute 
    {
       string userName;
       int age;
    
       // This is a positional argument.
       public NameAttribute (string userName) 
       { 
           this.userName = userName;
       }
       public string UserName 
       { 
          get 
          {
             return userName; 
          }
       }
       // This is a named argument.
       public int Age 
       { 
          get 
          {
             return age;
          }
          set 
          {
             age = value;
          }
       } 
    }
    

Portions Copyright 2005 Microsoft Corporation. Tutti i diritti riservati.

Portions Copyright Addison-Wesley Corporation. Tutti i diritti riservati.

Per ulteriori informazioni sulle linee guida di progettazione, vedere “le linee guida di progettazione di Framework: Idiomi convenzioni, e modelli per libro raccolte riutilizzabili .NET„ di Krzysztof Cwalina e brad Abrams, emessi da Addison-Wesley, 2005.

Vedere anche

Concetti

Linee guida di utilizzo

Altre risorse

Linee guida di progettazione per lo sviluppo di librerie di classi