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
Altre risorse
Linee guida di progettazione per lo sviluppo di librerie di classi