Compartilhar via


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