It's a class, and it is used to annotate or add additional infrastructure or transport information to an assembly, a class, method, or field.
for example, if you look in your AssemblyInfo.cs file, you will see attributes for the assembly.
If you look at a WebService method you will see the attribute "WebMethod". etc.
Now you can move on to Delegates.