Variables of value type contain their data directly. Value types have their own copy of data, so it is impossible to manipulate one variable to affect another; Value types can even use operators such as the + sign directly
Variables of reference types store data references to them, so variables are called objects, so operations on one variable may affect the objects referenced by another variable.