.Net Interview Question: What are Value types and Reference types?

  • Value types directly contain their data that are either allocated on the stack or allocated in-line in a structure. So value types are actual data.
  • Reference types store a reference to the value's memory address, and are allocated on the heap. Reference types can be self-describing types, pointer types, or interface types. You can view reference type as pointers to actual data.
  • Variables that are value types each have their own copy of the data, and therefore operations on one variable do not affect other variables. Variables that are reference types can refer to the same object; therefore, operations on one variable can affect the same object referred to by another variable. All types derive from the System. Object base type.