Öznitelikleri uygulama

Kodunuzdaki bir öğeye bir öznitelik uygulamak için aşağıdaki işlemi kullanın.

  1. Yeni bir öznitelik tanımlayın veya mevcut bir .NET özniteliğini kullanın.

  2. Özniteliği öğenin hemen önüne ekleyerek kod öğesine uygulayın.

    Her dilin kendi öznitelik sözdizimi bulunur. C++ ve C#'de öznitelik, köşeli ayraç içine alınır ve öğeden, satır sonu da içerebilen boşluk ile ayrılır. Visual Basic'te öznitelik, açılı ayraç içine alınır ve aynı mantıksal satırda bulunması gerekir; eğer bir satır sonu isterseniz satır devamı karakteri kullanabilirsiniz.

  3. Öznitelik için konumsal parametreleri ve adlandırılmış parametreleri belirtin.

    Konumsal parametreler gereklidir ve adlandırılmış parametrelerden önce gelmelidir; öznitelik oluşturucularından birinin parametrelerine karşılık gelir. Adlandırılmış parametreler isteğe bağlıdır ve özniteliğin okuma/yazma özelliklerine karşılık gelir. C++ve C# dilinde, isteğe bağlı her parametre için belirtin name=value ; burada name özelliğin adıdır. Visual Basic'te belirtin name:=value.

Kodunuzu derlediğinizde öznitelik meta verilere yayılır ve çalışma zamanı yansıma hizmetleri ile ortak dil çalışma zamanı ve herhangi bir özel araç veya uygulama tarafından kullanılabilir olur.

Kural gereği, tüm öznitelik adları "Öznitelik" ile biter. Ancak, Visual Basic ve C# gibi çalışma zamanını hedef alan çeşitli diller, bir özniteliğin tam adını belirtmenizi gerektirmez. Örneğin, başlatmak System.ObsoleteAttributeistiyorsanız, yalnızca Eski olarak başvurmanız gerekir.

Yönteme öznitelik uygulama

Aşağıdaki kod örneği, kodu eski olarak işaretleyen System.ObsoleteAttribute'un nasıl kullanılacağını gösterir. "Will be removed in next version" dizesi özniteliğe geçirilir. Bu öznitelik, özniteliğin açıkladığı kod çağırıldığında geçirilen dizeyi görüntüleyen bir derleyici uyarısına neden olur.

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

Öznitelikleri derleme düzeyinde uygulama

Derleme düzeyinde bir öznitelik uygulamak istiyorsanız (Assembly Visual Basic'te) anahtar sözcüğünü assembly kullanın. Aşağıdaki kod, derleme düzeyinde uygulanan AssemblyTitleAttribute'u gösterir.

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

Bu öznitelik uygulandığında "My Assembly" dizesi, dosyanın meta veri bölümündeki derleme bildirimine yerleştirilir. MSIL Disassembler (Ildasm.exe) kullanarak veya özniteliğini almak için özel bir program oluşturarak özniteliği görüntüleyebilirsiniz.

Ayrıca bkz.