An attribute is a declarative tag that associates metadata with code: assemblies, types, methods, properties, etc.
After an attribute is associated with a program entity, it can be queried at run time by using a technique called reflection.
A declarative tag is depicted by square brackets []
placed above or before the element it is used for.