Both are same in the context where attribute declaration goes. Former is shorter form of latter. But it does makes the difference inside a method.
For example if you say typeof(DefaultValue)
in some method, that won't compile. You'll have to say typeof(DefaultValueAttribute)
instead.
private void DoSomething()
{
var type = typeof(DefaultValue);//Won't compile
var type2 = typeof(DefaultValueAttribute);//Does compile
}