Kenmerken (ontwerprichtlijnen voor.NET Framework)
Notitie
Deze inhoud wordt opnieuw afgedrukt door toestemming van Pearson Education, Inc. van Framework Design Guidelines: Conventions, Idioms en Patterns for Reusable .NET Libraries, 2nd Edition. Die editie werd in 2008 gepubliceerd en het boek is sindsdien volledig herzien in de derde editie. Sommige informatie op deze pagina is mogelijk verouderd.
System.Attribute is een basisklasse die wordt gebruikt om aangepaste kenmerken te definiëren.
Kenmerken zijn aantekeningen die kunnen worden toegevoegd aan programmeerelementen zoals assembly's, typen, leden en parameters. Ze worden opgeslagen in de metagegevens van de assembly en kunnen tijdens runtime worden geopend met behulp van de reflectie-API's. Het framework definieert bijvoorbeeld het ObsoleteAttribute, dat kan worden toegepast op een type of een lid om aan te geven dat het type of lid is afgeschaft.
Kenmerken kunnen een of meer eigenschappen hebben die aanvullende gegevens bevatten die betrekking hebben op het kenmerk. Kan bijvoorbeeld ObsoleteAttribute
aanvullende informatie bevatten over de release waarin een type of lid is afgeschaft en de beschrijving van de nieuwe API's die de verouderde API vervangen.
Sommige eigenschappen van een kenmerk moeten worden opgegeven wanneer het kenmerk wordt toegepast. Deze worden de vereiste eigenschappen of vereiste argumenten genoemd, omdat ze worden weergegeven als positionele constructorparameters. De eigenschap van de ConditionalAttribute eigenschap is bijvoorbeeld ConditionString een vereiste eigenschap.
Eigenschappen die niet noodzakelijkerwijs moeten worden opgegeven wanneer het kenmerk wordt toegepast, worden optionele eigenschappen (of optionele argumenten) genoemd. Ze worden vertegenwoordigd door settable-eigenschappen. Compilers bieden speciale syntaxis om deze eigenschappen in te stellen wanneer een kenmerk wordt toegepast. De eigenschap vertegenwoordigt bijvoorbeeld AttributeUsageAttribute.Inherited een optioneel argument.
✔️ Do name custom attribute classes with the suffix "Attribute."
✔️ DO apply the AttributeUsageAttribute to custom attributes.
✔️ DO provide settable properties for optional arguments.
✔️ GEEF ALLEEN-get-eigenschappen op voor vereiste argumenten.
✔️ GEEF constructorparameters op om eigenschappen te initialiseren die overeenkomen met de vereiste argumenten. Elke parameter moet dezelfde naam hebben (hoewel met verschillende hoofdletters) als de bijbehorende eigenschap.
❌ VERMIJD het verstrekken van constructorparameters voor het initialiseren van eigenschappen die overeenkomen met de optionele argumenten.
Met andere woorden, geen eigenschappen die kunnen worden ingesteld met zowel een constructor als een setter. Deze richtlijn maakt zeer expliciet welke argumenten optioneel zijn en welke vereist zijn, en vermijdt twee manieren om hetzelfde te doen.
❌ VERMIJD overbelasting van aangepaste kenmerkconstructors.
Als slechts één constructor duidelijk communiceert met de gebruiker welke argumenten vereist zijn en die optioneel zijn.
✔️ DO seal aangepast kenmerk klassen, indien mogelijk. Hierdoor kan het kenmerk sneller worden opgezoekd.
© Delen 2005, 2009 Microsoft Corporation. Alle rechten voorbehouden.
Herdrukt door toestemming van Pearson Education, Inc. van Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published oct 22, 2008 by Addison-Wesley Professional als onderdeel van de Microsoft Windows Development Series.