Compartilhar via


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

Diretrizes de uso

Outros recursos

Diretrizes de Design para desenvolvimento bibliotecas de classe