This isn't a very important question, I'm only curious why it's not allowed. The error message is not helpful in explaining, because obviously 'Att' does inherit from Attribute.
public class Generic<Att> where Att : System.Attribute
{
[Att] //Error: 'Att' is not an attribute class
public float number;
}