Skip to main content

To Point Or Not To Point

Explain the differences between value type and reference type.​

Interview Question

The main differences between value type and reference type are given below:

  • A Value Type holds the actual data directly within the memory location and a Reference Type contains a pointer which consists of the address of another memory location that holds the actual data.
  • Value type stores its contents on the stack memory and reference type stores its contents on the heap memory.
  • Assigning a value type variable to another variable will copy the value directly and assigning a reference variable to another doesn’t copy the value, instead, it creates a second copy of the reference.
  • Predefined data types, structures, enums are examples of value types. Classes, Objects, Arrays, Indexers, Interfaces, etc are examples of reference types.

Boxing:​

Value type -> reference type Boxing is implicit.

Unboxing:​

Reference type -> value type Unboxing is explicit.

An example is given below to demonstrate boxing and unboxing operations:

int a = 10;      // a value type
object o = a; // boxing
int b = (int)o; // unboxing

Comments

No comments yet. Be the first!