Value Type
Value types are fixed in size. It maintains into system stack, Actual value of value type is stored in stack. All primitive type except string and object and user defined type like struct and enum are example of value type.
Reference Type
Reference types are not fixed in size. It maintains into managed Heap, but it also use stack to store reference of heap. Two primitive type like string and object and user defined type like class, interface and delegate are example of reference of heap.