Value types, as name tells, are values stored in memory; referencer types are (a kind of) pointer to an object (a class, an object, etc...)
From Microsoft:
A data type is a value type if it holds the data within its own memory allocation. A reference type contains a pointer to another memory location that holds the data.
Value Types
Value types include the following:
- All numeric data types
- Boolean, Char, and Date
- All structures, even if their members are reference types
- Enumerations, since their underlying type is always SByte, Short, Integer, Long, Byte, UShort, UInteger, or ULong
Reference Types
Reference types include the following:
- String
- All arrays, even if their elements are value types
- Class types, such as Form
- Delegates