Udostępnij za pośrednictwem


Atrybuty (wytyczne dotyczące projektowania .NET Framework)

Uwaga

Ta zawartość jest drukowana przez uprawnienie Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. Wydanie to zostało opublikowane w 2008 roku, a książka została w pełni zmieniona w trzecim wydaniu. Niektóre informacje na tej stronie mogą być nieaktualne.

System.Attribute jest klasą bazową używaną do definiowania atrybutów niestandardowych.

Atrybuty to adnotacje, które można dodać do elementów programowania, takich jak zestawy, typy, składowe i parametry. Są one przechowywane w metadanych zestawu i mogą być dostępne w czasie wykonywania przy użyciu interfejsów API odbicia. Na przykład struktura definiuje element ObsoleteAttribute, który można zastosować do typu lub elementu członkowskiego, aby wskazać, że typ lub element członkowski został przestarzały.

Atrybuty mogą mieć co najmniej jedną właściwość, która zawiera dodatkowe dane związane z atrybutem. Na przykład ObsoleteAttribute może zawierać dodatkowe informacje o wydaniu, w którym typ lub element członkowski został przestarzały, oraz opis nowych interfejsów API zastępujących przestarzały interfejs API.

Niektóre właściwości atrybutu muszą być określone podczas stosowania atrybutu. Są one określane jako wymagane właściwości lub wymagane argumenty, ponieważ są one reprezentowane jako parametry konstruktora pozycyjnego. Na przykład ConditionString właściwość obiektu ConditionalAttribute jest wymaganą właściwością.

Właściwości, które nie muszą być określone podczas stosowania atrybutu, są nazywane właściwościami opcjonalnymi (lub opcjonalnymi argumentami). Są one reprezentowane przez właściwości tabeli settable. Kompilatory zapewniają specjalną składnię, aby ustawić te właściwości po zastosowaniu atrybutu. Na przykład AttributeUsageAttribute.Inherited właściwość reprezentuje opcjonalny argument.

✔️ Nazwij klasy atrybutów niestandardowych z sufiksem "Atrybut".

✔️ Zastosuj element AttributeUsageAttribute do atrybutów niestandardowych.

✔️ Należy podać właściwości tabeli settable dla argumentów opcjonalnych.

✔️ Należy podać właściwości get-only dla wymaganych argumentów.

✔️ DO podaj parametry konstruktora, aby zainicjować właściwości odpowiadające wymaganym argumentom. Każdy parametr powinien mieć taką samą nazwę (chociaż z inną wielkością liter) co odpowiednia właściwość.

❌ UNIKAJ podawania parametrów konstruktora w celu inicjowania właściwości odpowiadających opcjonalnym argumentom.

Innymi słowy, nie mają właściwości, które można ustawić zarówno za pomocą konstruktora, jak i zestawu. Ta wskazówka sprawia, że bardzo wyraźnie, które argumenty są opcjonalne i które są wymagane, i unika posiadania dwóch sposobów wykonywania tych samych czynności.

❌ UNIKAJ przeciążania konstruktorów atrybutów niestandardowych.

Posiadanie tylko jednego konstruktora wyraźnie komunikuje się z użytkownikiem, który argumenty są wymagane i które są opcjonalne.

✔️ Czy uszczelnić niestandardowe klasy atrybutów, jeśli to możliwe. Dzięki temu wyszukiwanie atrybutu jest szybsze.

© Części 2005, 2009 Microsoft Corporation. Wszelkie prawa zastrzeżone.

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 w ramach Microsoft Windows Development Series.

Zobacz też