Usando atributos (guia de programação translation from VPE for Csharp)

Atributos podem ser colocados em qualquer declaração, embora um atributo específico pode restringir os tipos de declarações no qual ele é válido.Sintaticamente, um atributo é especificado pelo colocando o nome do atributo, entre colchetes, na frente da declaração da entidade a que ele se aplica.Por exemplo, um método com o atributo DllImport é declarado como este:

[System.Runtime.InteropServices.DllImport("user32.dll")]
extern static void SampleMethod();

Para obter mais informações, consulte Classe DllImportAttribute.

Muitos atributos têm parâmetros, que podem ser posicional, sem nome ou nomeado.Parâmetros de posição devem ser especificados em uma determinada ordem e não podem ser omitidos; parâmetros nomeados são opcionais e podem ser especificados em qualquer ordem.Parâmetros de posição é especificada pela primeira vez.Por exemplo, esses três atributos são equivalentes:

[DllImport("user32.dll")]
[DllImport("user32.dll", SetLastError=false, ExactSpelling=false)]
[DllImport("user32.dll", ExactSpelling=false, SetLastError=false)]

O primeiro parâmetro, o nome da DLL é posicional e sempre vem em primeiro lugar; as outras são nomeadas.Nesse caso, ambos chamados padrão de parâmetros como false, para que possa ser omitidos.Consulte a documentação do atributo individual para obter informações sobre valores de parâmetro padrão.

Mais de um atributo pode ser colocado em uma declaração separadamente ou dentro do mesmo conjunto de colchetes:

void MethodA([In][Out] ref double x) { }
void MethodB([Out][In] ref double x) { }
void MethodC([In, Out] ref double x) { }

Alguns atributos podem ser especificados mais de uma vez para uma determinada entidade.Um exemplo de um atributo multiuse é Condicional:

[Conditional("DEBUG"), Conditional("TEST1")]
void TraceMethod()
{
    // ...
}
Observação:

Por convenção, todos os nomes de atributo terminam com a palavra "Atributo" para diferenciá-los de outros itens no .NET estrutura.No entanto, você não precisa especificar o sufixo de atributo ao usar atributos no código.Por exemplo, [DllImport] é equivalente a [DllImportAttribute], mas DllImportAttribute é nome real o atributo do .NET estrutura.

Consulte também

Conceitos

Guia de Programação C#

Referência

Reflexo (guia de programação C#) 

Atributos (guia de programação C#)

Destinos de atributo disambiguating (guia de programação translation from VPE for Csharp)

Criando atributos personalizados (guia de programação translation from VPE for Csharp)

Acessando atributos com reflexo (C# programação guia)

Attribute

System.Reflection