Sdílet prostřednictvím


Použití atributů

Na základě následujícího postupu použijte atribut na prvek kódu.

  1. Definujte nový atribut nebo použijte existující atribut .NET.

  2. Použijte atribut na prvek kódu tak, že ho umístíte bezprostředně před prvek.

    Jednotlivé jazyky mají vlastní syntaxi atributů. V jazyce C++ a jazyce C# je atribut ohraničen hranatými závorkami a oddělen od prvku prázdným znakem, který může obsahovat konec řádku. V jazyce Visual Basic je atribut ohraničen ostrými závorkami a musí být umístěn na stejném logickém řádku. Znak pro pokračování řádku lze použít v případě, že je vyžadován konec řádku.

  3. Zadejte poziční parametry a pojmenované parametry atributu.

    Poziční parametry jsou povinné a musí být před libovolnými pojmenovanými parametry. Odpovídají parametrům jednoho z konstruktorů atributu. Pojmenované parametry jsou volitelné a odpovídají vlastnostem atributu pro čtení a zápis. V jazyce C++ a C# zadejte name=value pro každý volitelný parametr, kde name je název vlastnosti. V jazyce Visual Basic zadejte name:=value.

Atribut je při kompilaci kódu vložen do metadat a je k dispozici pro modul CLR (Common Language Runtime) a vlastní nástroje nebo aplikace prostřednictvím služeb reflexe runtime.

Podle konvence končí všechny názvy atributů na "Attribute". Avšak několik jazyků, které používají modul runtime, jako jsou například Visual Basic a C#, nevyžadují zadávání úplného názvu atributu. Pokud například chcete inicializovat System.ObsoleteAttribute, stačí na ni odkazovat pouze jako zastaralé.

Použití atributu u metody

Následující příklad kódu ukazuje, jak používat System.ObsoleteAttribute, který označuje kód jako zastaralý. Řetězec "Will be removed in next version" je předán atributu. Tento atribut vygeneruje upozornění kompilátoru, které zobrazí předaný řetězec, pokud je volán kód popisovaný atributem.

public ref class Example
{
    // Specify attributes between square brackets in C#.
    // This attribute is applied only to the Add method.
public:
    [Obsolete("Will be removed in next version.")]
    static int Add(int a, int b)
    {
        return (a + b);
    }
};

ref class Test
{
public:
    static void Main()
    {
        // This generates a compile-time warning.
        int i = Example::Add(2, 2);
    }
};

int main()
{
    Test::Main();
}
public class Example
{
    // Specify attributes between square brackets in C#.
    // This attribute is applied only to the Add method.
    [Obsolete("Will be removed in next version.")]
    public static int Add(int a, int b)
    {
        return (a + b);
    }
}

class Test
{
    public static void Main()
    {
        // This generates a compile-time warning.
        int i = Example.Add(2, 2);
    }
}
Public Class Example
    ' Specify attributes between square brackets in C#.
    ' This attribute is applied only to the Add method.
    <Obsolete("Will be removed in next version.")>
    Public Shared Function Add(a As Integer, b As Integer) As Integer
        Return a + b
    End Function
End Class

Class Test
    Public Shared Sub Main()
        ' This generates a compile-time warning.
        Dim i As Integer = Example.Add(2, 2)
    End Sub
End Class

Použití atributů na úrovni sestavení

Pokud chcete použít atribut na úrovni sestavení, použijte assembly klíčové slovo (Assembly v jazyce Visual Basic). Následující kód ukazuje AssemblyTitleAttribute použité na úrovni sestavení.

using namespace System::Reflection;
[assembly:AssemblyTitle("My Assembly")];
using System.Reflection;
[assembly:AssemblyTitle("My Assembly")]
Imports System.Reflection
<Assembly: AssemblyTitle("My Assembly")>

Pokud použijete tento atribut, bude řetězec "My Assembly" umístěn v manifestu sestavení v části souboru s metadaty. Atribut můžete zobrazit buď pomocí nástroje IL Disassembler (Ildasm.exe), nebo vytvořením vlastního programu pro načtení atributu.

Viz také