The common type system defines how types are declared, used, and managed in the common language runtime. Each of the data types used in Visual Basic .NET correspond directly to a type defined in the common type system.
A value-type variable directly contains its data. Each value-type variable has its own copy of data, so operations on one value-type variable cannot affect another variable.
A reference-type variable contains a reference or pointer to the value of an object. Two reference-type variables can reference the same object, so operations on one reference-type variable can affect the object referenced by another reference-type variable.