Большинство атрибутов заканчиваются словом Attribute, включая ColumnAttribute, CLSCompliantAttribute и SerializableAttribute. Компилятор позволяет опустить последнее слово Attribute. Программист выбирает, добавлять атрибут к таким именам или нет.
Суффикс атрибута, однако, является всего лишь соглашением: вполне допустимо, хотя и необычно, определить атрибут, например, следующим образом:
[AttributeUsage(AttributeTargets.All)]
public class Foo : Attribute {
}
точно так же, как и для определения исключения с именем Throwable, например.