Founded that:
typeof(System.Enum).IsClass == false
It's become strange that System.Enum
has also .IsValueType == false
, but Reflector shows that it is really just an abstract class
.
System.Enum
is a reference type like a System.ValueType
and casting enumeration values to/from System.Enum
reference caused boxing/unboxing. No surprises here.
But what is a reason for Type
class not to tell truth about System.Enum
nature?
There is no anything extraordinary with the System.Enum
type's reflection behavior to make it looks like not a reference type.