This may help:
Using struct and class - what's that all about?[
^] - it may explain a bit more than you wanted, but it should cover what you want.
Why are structs / value types sealed? So you can't inherit from them! :laugh:
I know, I know, that sounds like a justification, not a reason - but it's the reason.
If you could inherit from a value type, you could expand it in the derived class (and in fact you are likely to or there would be little point in deriving from it) which would mean one of two things:
1) The system would have to convert the value type to a class so that overridden and
new
methods worked properly,
Or
2) The system would have to process the inheritance chain for all objects, not just reference types. This could slow execution considerably compared to the "simplified" model it can use at present.
And in addition, expanding a value type would imply that it would grow beyond 16 bytes - the recommended maximum for a struct for performance reasons.