Dela via


Attribut (designriktlinjer för.NET Framework)

Kommentar

Det här innehållet skrivs om med behörighet från Pearson Education, Inc. från Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. Den utgåvan publicerades 2008, och boken har sedan dess reviderats helt i den tredje utgåvan. En del av informationen på den här sidan kan vara inaktuell.

System.Attribute är en basklass som används för att definiera anpassade attribut.

Attribut är anteckningar som kan läggas till i programmeringselement som sammansättningar, typer, medlemmar och parametrar. De lagras i sammansättningens metadata och kan nås vid körning med hjälp av reflektions-API:erna. Ramverket definierar ObsoleteAttributetill exempel , som kan tillämpas på en typ eller en medlem för att indikera att typen eller medlemmen har blivit inaktuell.

Attribut kan ha en eller flera egenskaper som innehåller ytterligare data som är relaterade till attributet. Kan till exempel ObsoleteAttribute innehålla ytterligare information om versionen där en typ eller medlem blev inaktuell och beskrivningen av de nya API:erna som ersätter det föråldrade API:et.

Vissa egenskaper för ett attribut måste anges när attributet tillämpas. Dessa kallas för nödvändiga egenskaper eller obligatoriska argument, eftersom de representeras som positionskonstruktorparametrar. Egenskapen ConditionalAttribute för är till exempel ConditionString en obligatorisk egenskap.

Egenskaper som inte nödvändigtvis behöver anges när attributet tillämpas kallas valfria egenskaper (eller valfria argument). De representeras av inställbara egenskaper. Kompilatorer tillhandahåller särskild syntax för att ange dessa egenskaper när ett attribut tillämpas. Egenskapen AttributeUsageAttribute.Inherited representerar till exempel ett valfritt argument.

✔️ NAMNGE anpassade attributklasser med suffixet "Attribut".

✔️ Tillämpa på AttributeUsageAttribute anpassade attribut.

✔️ Ange inställningsbara egenskaper för valfria argument.

✔️ Ange endast get-properties för obligatoriska argument.

✔️ ANGE konstruktorparametrar för att initiera egenskaper som motsvarar nödvändiga argument. Varje parameter bör ha samma namn (men med olika höljen) som motsvarande egenskap.

❌ UNDVIK att tillhandahålla konstruktorparametrar för att initiera egenskaper som motsvarar de valfria argumenten.

Med andra ord, har inte egenskaper som kan anges med både en konstruktor och en setter. Den här riktlinjen anger mycket explicit vilka argument som är valfria och vilka som krävs, och undviker att ha två sätt att göra samma sak.

❌ UNDVIK att överbelasta anpassade attributkonstruktorer.

Att bara ha en konstruktor kommunicerar tydligt med användaren vilka argument som krävs och vilka som är valfria.

✔️ Gör försegla anpassade attributklasser, om möjligt. Detta gör att uppslag för attributet går snabbare.

Portioner © 2005, 2009 Microsoft Corporation. Med ensamrätt.

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, publicerad 22 okt 2008 av Addison-Wesley Professional som en del av Microsoft Windows Development Series.

Se även