Aracılığıyla paylaş


Özel Öznitelikler Oluşturma (C# ve Visual Basic)

Öznitelik sınıfı, doğrudan veya dolaylı olarak türetildiği sınıfı tanımlayarak, kendi özel öznitelikleri oluşturabilirsiniz Attribute, hızlı ve kolay meta verileri özniteliği tanımlarında tanımlama hangi yapar.Etiket türleriyle türü yazdı Programcı için adı istediğinizi varsayalım.Tanımladığınız özel bir Author öznitelik sınıfı:

<System.AttributeUsage(System.AttributeTargets.Class Or 
                       System.AttributeTargets.Struct)> 
Public Class Author
    Inherits System.Attribute
    Private name As String 
    Public version As Double 
    Sub New(ByVal authorName As String)
        name = authorName
        version = 1.0
    End Sub 
End Class
[System.AttributeUsage(System.AttributeTargets.Class |
                       System.AttributeTargets.Struct)
]
public class Author : System.Attribute
{
    private string name;
    public double version;

    public Author(string name)
    {
        this.name = name;
        version = 1.0;
    }
}

Özniteliğin adı, sınıf adı olan Author.Den türetilen System.Attribute, özel bir öznitelik sınıfı, bu nedenle.Yapıcı'nın parametreleri özel özniteliğin Konumsal parametrelerdir.Bu örnekte, name Konumsal bir parametredir.Herhangi bir ortak okuma-yazma alanlar ve Özellikler parametre olarak adlandırılır.Bu durumda, version tek parametre adı verilir.Kullanımına dikkat edin AttributeUsage hale getirmek için öznitelik Author öznitelik sınıfı yalnızca geçerli ve struct (Structure Visual Basic) bildirimleri.

Bu yeni öznitelik aşağıdaki gibi kullanabilirsiniz:

<Author("P. Ackerman", Version:=1.1)> 
Class SampleClass
    ' P. Ackerman's code goes here... 
End Class
[Author("P. Ackerman", version = 1.1)]
class SampleClass
{
    // P. Ackerman's code goes here...
}

AttributeUsageadlandırılmış bir parametre olan AllowMultiple, özel öznitelik tek kullanım veya multiuse yapabileceğiniz ile.Aşağıdaki kod örneğinde, multiuse özniteliği oluşturulur.

' multiuse attribute
<System.AttributeUsage(System.AttributeTargets.Class Or 
                       System.AttributeTargets.Struct, 
                       AllowMultiple:=True)> 
Public Class Author
    Inherits System.Attribute
[System.AttributeUsage(System.AttributeTargets.Class |
                       System.AttributeTargets.Struct,
                       AllowMultiple = true)  // multiuse attribute
]
public class Author : System.Attribute

Aşağıdaki kod örneğinde, aynı türden birden çok öznitelik sınıfı için uygulanır.

<Author("P. Ackerman", Version:=1.1), 
Author("R. Koch", Version:=1.2)> 
Class SampleClass
    ' P. Ackerman's code goes here... 
    ' R. Koch's code goes here... 
End Class
[Author("P. Ackerman", version = 1.1)]
[Author("R. Koch", version = 1.2)]
class SampleClass
{
    // P. Ackerman's code goes here... 
    // R. Koch's code goes here...
}

[!NOT]

Bir özellik sınıfınızın öznitelik içerir, bu özellik okuma-yazma olmalıdır.

Ayrıca bkz.

Başvuru

Yansıma (C# ve Visual Basic)

Öznitelikler (C# ve Visual Basic)

Yansıma Kullanarak Özniteliklere Erişme (C# ve Visual Basic)

System.Reflection

AttributeUsage (C# ve Visual Basic)

Kavramlar

C# Programlama Kılavuzu

Özel Öznitelikler Yazma

Diğer Kaynaklar

Visual Basic Programlama Kılavuzu