-
Value types: These are types that store the actual value within a variable's memory allocation. Examples include int, float, double, bool, and char. Value types are typically allocated on the stack.
-
Reference types: These are types that store a reference to the location of the value within a variable's memory allocation. Examples include string, object, and user-defined classes. Reference types are typically allocated on the heap.
-
Nullable types: These are value types that can also have a value of null. Examples include int? and bool?.