Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan skapa egna anpassade attribut genom att definiera en attributklass, en klass som direkt eller indirekt härleds från Attribute, vilket gör det snabbt och enkelt att identifiera attributdefinitioner i metadata. Anta att du vill tagga typer med namnet på programmeraren som skrev typen. Du kan definiera en anpassad Author attributklass:
<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
Klassnamnet är attributets namn, Author. Det härleds från System.Attribute, så det är en anpassad attributklass. Konstruktorns parametrar är det anpassade attributets positionsparametrar. I det här exemplet name är en positionsparameter. Alla offentliga läs-och-skrivfält eller egenskaper kallas parametrar. I det här fallet version är den enda namngivna parametern. Observera användningen av attributet AttributeUsage för att göra attributet Author giltigt endast på klass- och Structure deklarationer.
Du kan använda det här nya attributet på följande sätt:
<Author("P. Ackerman", Version:=1.1)>
Class SampleClass
' P. Ackerman's code goes here...
End Class
AttributeUsage har en namngiven parameter, AllowMultiple, med vilken du kan skapa ett anpassat attribut för enkel användning eller multianvändning. I följande kodexempel skapas ett multiuse-attribut.
' multiuse attribute
<System.AttributeUsage(System.AttributeTargets.Class Or
System.AttributeTargets.Struct,
AllowMultiple:=True)>
Public Class Author
Inherits System.Attribute
I följande kodexempel tillämpas flera attribut av samma typ på en klass.
<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
Anmärkning
Om attributklassen innehåller en egenskap måste den egenskapen vara läs- och skrivbar.