Value types must derive from either System.ValueType or System.Enum. The interesting thing is ValueType and Enum are reference types.
Also, all value types come with a default (parameterless) constructor to initialize a value type to "all bits zero":
int i = new int(); // legal C#
And if you declare your own ValueType, you cannot declare a default constructor:
public foo() // error!
Ok, that clears things up a bit.
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.