|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.|
Types (C# Reference)
The C# typing system contains the following categories:
Variables of the value types store data, while those of the reference types store references to the actual data. Reference types are also referred to as objects. Pointer types can be used only in unsafe mode.
It is possible to convert a value type to a reference type, and back again to value types, by using boxing and unboxing. With the exception of a boxed value types, you cannot convert a reference type to a value type.
This section also introduces void.
Value types are also nullable, which means they can store an addition non-value state. For more information, see Nullable Types.