Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Meghatározza, hogyan használható az egyéni attribútumosztály.
AttributeUsage olyan attribútum, amely egyéni attribútumdefiníciókra alkalmazható az új attribútum alkalmazásának szabályozásához. Az alapértelmezett beállítások a következőképpen néznek ki, ha explicit módon alkalmazzák:
<System.AttributeUsage(System.AttributeTargets.All,
AllowMultiple:=False,
Inherited:=True)>
Class NewAttribute
Inherits System.Attribute
End Class
Ebben a példában az NewAttribute osztály bármely attribútum-képes kód entitásra alkalmazható, de mindegyik entitásra csak egyszer alkalmazható. Amikor az alaposztályra alkalmazzák, a származtatott osztályok öröklik.
A AllowMultiple és Inherited argumentumok nem kötelezőek, így a kódnak ugyanaz a hatása van.
<System.AttributeUsage(System.AttributeTargets.All)>
Class NewAttribute
Inherits System.Attribute
End Class
Az első AttributeUsage argumentumnak az AttributeTargets enumerálás egy vagy több elemének kell lennie. Az OR operátorral több céltípus is összekapcsolható, például:
<AttributeUsage(AttributeTargets.Property Or AttributeTargets.Field)>
Class NewPropertyOrFieldAttribute
Inherits Attribute
End Class
Ha az AllowMultiple argumentum értéke truea következő, akkor az eredményként kapott attribútum több alkalommal is alkalmazható egyetlen entitásra, például:
<AttributeUsage(AttributeTargets.Class, AllowMultiple:=True)>
Class MultiUseAttr
Inherits Attribute
End Class
<MultiUseAttr(), MultiUseAttr()>
Class Class1
End Class
Ebben az esetben MultiUseAttr többször is alkalmazható, mert AllowMultiple be van állítva.true A több attribútum alkalmazásához megjelenített mindkét formátum érvényes.
Ha Inherited a beállítás értéke false, akkor az attribútumot nem öröklik az attribútumként megadott osztályból származtatott osztályok. Például:
<AttributeUsage(AttributeTargets.Class, Inherited:=False)>
Class Attr1
Inherits Attribute
End Class
<Attr1()>
Class BClass
End Class
Class DClass
Inherits BClass
End Class
Ebben az esetben Attr1 nincs öröklés útján alkalmazva DClass-re.
Megjegyzések
Az AttributeUsage attribútum egy egyszer használatos attribútum – nem alkalmazható többször ugyanarra az osztályra.
AttributeUsage egy alias AttributeUsageAttribute számára.
További információ: Attribútumok elérése tükröződés (Visual Basic) használatával.
példa
Az alábbi példa bemutatja, hogy a Inherited és AllowMultiple argumentumok hogyan hatnak a AttributeUsage attribútumra, valamint, hogy az osztályra alkalmazott egyéni attribútumok miként számlálhatók fel.
' Create some custom attributes:
<AttributeUsage(System.AttributeTargets.Class, Inherited:=False)>
Class A1
Inherits System.Attribute
End Class
<AttributeUsage(System.AttributeTargets.Class)>
Class A2
Inherits System.Attribute
End Class
<AttributeUsage(System.AttributeTargets.Class, AllowMultiple:=True)>
Class A3
Inherits System.Attribute
End Class
' Apply custom attributes to classes:
<A1(), A2()>
Class BaseClass
End Class
<A3(), A3()>
Class DerivedClass
Inherits BaseClass
End Class
Public Class TestAttributeUsage
Sub Main()
Dim b As New BaseClass
Dim d As New DerivedClass
' Display custom attributes for each class.
Console.WriteLine("Attributes on Base Class:")
Dim attrs() As Object = b.GetType().GetCustomAttributes(True)
For Each attr In attrs
Console.WriteLine(attr)
Next
Console.WriteLine("Attributes on Derived Class:")
attrs = d.GetType().GetCustomAttributes(True)
For Each attr In attrs
Console.WriteLine(attr)
Next
End Sub
End Class
Mintakimenet
Attributes on Base Class:
A1
A2
Attributes on Derived Class:
A3
A3
A2