Diretrizes de uso do atributo
O .NET estrutura permite que os desenvolvedores inventar novos tipos de informações declarativas, para especificar informações declarativas para várias entidades de programa e recuperar informações de atributo em um ambiente de time de execução. Por exemplo, uma estrutura pode definir um HelpAttribute atributo que pode ser colocado em elementos de programa, sistema autônomo classes e métodos para fornecer um mapeamento de elementos do programa para sua documentação. Novos tipos de informações declarativas são definidos por meio da declaração de classes de atributo, que pode ter parâmetros posicionais e nomeados. Para obter mais informações sobre atributos, consulte Gravar atributos personalizados.
As regras a seguir descrevem as diretrizes de uso de classes de atributo:
Adicionar o Attribute sufixo para classes de atributo personalizado, sistema autônomo mostrado no exemplo a seguir.
Public Class ObsoleteAttribute{}
public class ObsoleteAttribute{}
Especificar AttributeUsage em seus atributos para definir com precisão, seu uso sistema autônomo mostrado no exemplo a seguir.
<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 {}
lacrar classes de atributo sempre que possível, para que as classes não podem ser derivadas de-los.
Use argumentos posicionais (parâmetros do construtor) para os parâmetros necessários. Fornecem uma propriedade somente leitura com o mesmo nome sistema autônomo cada argumento posicional, mas alterar csistema autônomoe para diferenciar entre eles. Isso permite o acesso para o argumento em time de execução.
Usar argumentos nomeados para parâmetros opcionais e fornecem uma propriedade de leitura/gravar para cada argumento nomeado.
Não defina um parâmetro com argumentos nomeados e posicionais. O exemplo de código a seguir ilustra esse padrão.
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; } } }
Partes direitos autorais 2005 Microsoft Corporation. Todos os direitos reservados.
Partes direitos autorais Addison-Wesley Corporation. Todos os direitos reservados.
Para obter mais informações sobre diretrizes de design, consulte a "diretrizes de design do estrutura: Catálogo de convenções, idiomas e padrões para bibliotecas do .NET reutilizável"Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.
Consulte também
Conceitos
Outros recursos
Diretrizes de Design para desenvolvimento bibliotecas de classe