[Note: Much of the C# language enables the programmer to specify declarative
information about the
entities defined in the program. For example, the accessibility of a method
in a class is specified by
decorating it with the method-modifiers public, protected, internal, and
private. end note]
C# enables programmers to invent new kinds of declarative information,
called attributes. Programmers can
then attach attributes to various program entities, and retrieve attribute
information in a run-time
environment. [Note: For instance, a framework might define a HelpAttribute
attribute that can be placed
on certain program elements (such as classes and methods) to provide a
mapping from those program
elements to their documentation. end note]
Attributes are defined through the declaration of attribute classes (§24.1),
which may have positional and
named parameters (§24.1.2). Attributes are attached to entities in a C#
program using attribute specifications
(§24.2), and can be retrieved at run-time as attribute instances (§24.3).
information about the
entities defined in the program. For example, the accessibility of a method
in a class is specified by
decorating it with the method-modifiers public, protected, internal, and
private. end note]
C# enables programmers to invent new kinds of declarative information,
called attributes. Programmers can
then attach attributes to various program entities, and retrieve attribute
information in a run-time
environment. [Note: For instance, a framework might define a HelpAttribute
attribute that can be placed
on certain program elements (such as classes and methods) to provide a
mapping from those program
elements to their documentation. end note]
Attributes are defined through the declaration of attribute classes (§24.1),
which may have positional and
named parameters (§24.1.2). Attributes are attached to entities in a C#
program using attribute specifications
(§24.2), and can be retrieved at run-time as attribute instances (§24.3).