Atributy (pokyny pro návrh rozhraní .NET Framework)
Poznámka:
Tento obsah je znovu vytištěn oprávněním Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms a Patterns for Reusable .NET Libraries, 2. vydání. Tato edice byla publikována v roce 2008 a kniha byla od té doby plně upravena ve třetím vydání. Některé informace na této stránce můžou být zastaralé.
System.Attribute je základní třída, která slouží k definování vlastních atributů.
Atributy jsou poznámky, které lze přidat do programovacích prvků, jako jsou sestavení, typy, členy a parametry. Jsou uloženy v metadatech sestavení a lze k nim přistupovat za běhu pomocí rozhraní API reflexe. Rozhraní například definuje ObsoleteAttribute, který lze použít pro typ nebo člen, který označuje, že typ nebo člen byl zastaralý.
Atributy můžou mít jednu nebo více vlastností, které obsahují další data související s atributem. Může například ObsoleteAttribute
obsahovat další informace o verzi, ve které byl typ nebo člen zastaralý, a popis nových rozhraní API nahrazujících zastaralé rozhraní API.
Některé vlastnosti atributu musí být zadány při použití atributu. Označují se jako požadované vlastnosti nebo požadované argumenty, protože jsou reprezentovány jako parametry pozičního konstruktoru. Například ConditionString vlastnost ConditionalAttribute je povinná.
Vlastnosti, které nemusí být nutně zadány při použití atributu, se nazývají volitelné vlastnosti (nebo volitelné argumenty). Jsou reprezentovány nastavenými vlastnostmi. Kompilátory poskytují speciální syntaxi pro nastavení těchto vlastností při použití atributu. AttributeUsageAttribute.Inherited Například vlastnost představuje volitelný argument.
✔️ DO pojmenujte vlastní třídy atributů s příponou "Attribute".
✔️ POUŽIJTE u AttributeUsageAttribute vlastních atributů.
✔️ Do provide settable properties for optional arguments.
✔️ Do zadejte vlastnosti jen pro získání požadovaných argumentů.
✔️ ZADEJTE parametry konstruktoru pro inicializaci vlastností odpovídajících požadovaným argumentům. Každý parametr by měl mít stejný název (i když s jiným casingem) jako odpovídající vlastnost.
❌ Vyhněte se zadávání parametrů konstruktoru pro inicializaci vlastností odpovídajících volitelným argumentům.
Jinými slovy, nemají vlastnosti, které lze nastavit pomocí konstruktoru i setter. Díky tomuto návodu je velmi explicitní, které argumenty jsou volitelné a které jsou povinné, a vyhýbá se tomu dvěma způsoby.
❌ VYHNĚTE se přetížení vlastních konstruktorů atributů.
Mít pouze jeden konstruktor jasně komunikuje s uživatelem, které argumenty jsou povinné a které jsou volitelné.
✔️ Pokud je to možné, zapečetějte vlastní třídy atributů. Vyhledávání atributu tak bude rychlejší.
© Části 2005, 2009 Microsoft Corporation. Všechna práva vyhrazena.
Reprinted by permission of Pearson Education, Inc. from 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 v rámci Microsoft Windows Development Series.