Isn't it odd that...

From the files of things that make you go “hmmmm”.

System.Exception (the base class for all exceptions) is indeed an exception: throw new Exception ()

But…

System.Enum (the base class for all enums) is not an enum: typeof (Enum).IsEnum == false

System.ValueType (the base class for all ValueTypes) is not a ValueType: typeof (ValueType).IsValueType == false

System.Attribute (the base class for all custom attributes) is not a custom attribute [Attribute] -> compile error

From the files of things that make you go “hmmmm”.

System.Exception (the base class for all exceptions) is indeed an exception: throw new Exception ()

But…

System.Enum (the base class for all enums) is not an enum: typeof (Enum).IsEnum == false

System.ValueType (the base class for all ValueTypes) is not a ValueType: typeof (ValueType).IsValueType == false

System.Attribute (the base class for all custom attributes) is not a custom attribute [Attribute] -> compile error.

 

There is, of course, good reason for all of this, but still a bit odd when you try to explain to someone the first time.