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).