From MSDN
Structs differ from classes in several important ways:
- Structs are value types (Section 11.3.1).
- All struct types implicitly inherit from the class
System.ValueType (Section 11.3.2).
- Assignment to a variable of a struct type creates a copy of the value being assigned (Section 11.3.3).
- The default value of a struct is the value produced by setting all value type fields to their default value and all reference type fields to
null (Section 11.3.4).
- Boxing and unboxing operations are used to convert between a struct type and
object (Section 11.3.5).
- The meaning of
this is different for structs (Section 11.3.6).
- Instance field declarations for a struct are not permitted to include variable initializers (Section 11.3.7).
- A struct is not permitted to declare a parameterless instance constructor (Section 11.3.8).
- A struct is not permitted to declare a destructor (Section 11.3.9).