Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Saját egyéni attribútumokat úgy hozhat létre, hogy definiál egy attribútumosztályt, egy közvetlenül vagy közvetve származó Attributeosztályt, amely gyors és egyszerűvé teszi az attribútumdefiníciók azonosítását a metaadatokban. Tegyük fel, hogy a típust író programozó nevével szeretné címkézni a típust. Egyéni Author attribútumosztályt is definiálhat:
<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
Az osztály neve az attribútum neve. Author A származtatása System.Attribute, így ez egy egyéni attribútumosztály. A konstruktor paraméterei az egyéni attribútum pozícióparaméterei. Ebben a példában name egy pozícióparaméter látható. A nyilvános írási-olvasási mezők vagy tulajdonságok nevesített paraméterek. Ebben az esetben version az egyetlen elnevezett paraméter. Figyelje meg az AttributeUsage attribútum használatát, hogy az attribútum csak osztályon Author és Structure deklarációkon érvényes legyen.
Ezt az új attribútumot a következőképpen használhatja:
<Author("P. Ackerman", Version:=1.1)>
Class SampleClass
' P. Ackerman's code goes here...
End Class
AttributeUsage egy elnevezett paraméterrel rendelkezik, AllowMultipleamellyel egyéni attribútumokat hozhat létre egyszerhasználatos vagy többfelhasználóssá. A következő kód példában egy többfelhasználós attribútum jön létre.
' multiuse attribute
<System.AttributeUsage(System.AttributeTargets.Class Or
System.AttributeTargets.Struct,
AllowMultiple:=True)>
Public Class Author
Inherits System.Attribute
Az alábbi kód példában több azonos típusú attribútumot alkalmazunk egy osztályra.
<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
Megjegyzés:
Ha az attribútumosztály tartalmaz egy tulajdonságot, annak írási-olvasási tulajdonságnak kell lennie.