Tworzenie niestandardowych atrybutów (C# i Visual Basic)
Można utworzyć własne niestandardowe atrybuty, definiując atrybut klasy, klasy, który pochodzi bezpośrednio lub pośrednio od Attribute, który ułatwia identyfikowanie definicji atrybutu w metadanych szybki i łatwy.Załóżmy, że do typów tag o nazwie programista, który napisał typu.Można zdefiniować niestandardowy Author atrybut klasy:
<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;
}
}
Nazwa klasy jest nazwa atrybutu Author.Wynika to z System.Attribute, więc klasy atrybutu niestandardowego.Parametry Konstruktora są parametrami pozycyjne atrybutu niestandardowego.W tym przykładzie name jest parametr pozycyjne.Wszelkich publicznych pola odczytu zapisu lub właściwości są nazwane parametry.W tym przypadku version jest jedynym nazwany parametr.Uwaga Użycie AttributeUsage atrybutu, aby Author atrybut jest ważny tylko dla klasy i struct (Structure w języku Visual Basic) deklaracji.
Ten nowy atrybut można użyć w następujący sposób:
<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...
}
AttributeUsagenazwany parametr, AllowMultiple, z którym można utworzyć niestandardowy atrybut, jednorazowego użytku lub الهلال.W poniższym przykładzie utworzono atrybutu الهلال.
' 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
W poniższym przykładzie kodu wiele atrybutów tego samego typu, są stosowane do klasy.
<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...
}
[!UWAGA]
Jeśli atrybut Klasa zawiera właściwość, że właściwość musi być odczytu i zapisu.
Zobacz też
Informacje
Dostęp do atrybutów przy użyciu odbicia (C# i Visual Basic)
AttributeUsage (C# i Visual Basic)
Koncepcje
Atrybuty niestandardowe pisania