Share via

Attributes (C# Programming Guide)

Attributes provide a powerful method of associating declarative information with C# code (types, methods, properties, and so forth). After an attribute is associated with a program entity, the attribute can be queried at run time by using a technique called reflection. For more information, see Reflection (C# Programming Guide).

Attributes occur in two forms:

  • Attributes that are defined in the common language runtime (CLR).

  • Custom attributes that you can create, to add extra information to your code. This information can later be retrieved programmatically.

In this example, the TypeAttributes.Serializable attribute is used to apply a specific characteristic to a class:

public class SampleClass
    // Objects of this type can be serialized.

Attribute Overview

Attributes have the following properties:

For more information, see:

C# Language Specification

For more information, see the following sections in the C# Language Specification:

  • 10.2.1 Attributes

  • 17 Attributes

See Also


C# Programming Guide

Attributes Overview

Common Uses for Attributes


Reflection (C# Programming Guide)

Change History




July 2008

Updated overview section.

Content bug fix.