Value types — stored on stack, contain data directly. Reference types — stored on heap, contain reference.
Value types:
1int x = 10; // Value type2int y = x; // Copy value3y = 20; // x still 10
Reference types:
1var arr1 = new int[] {1, 2, 3}; // Reference type2var arr2 = arr1; // Copy reference3arr2[0] = 10; // arr1 also changed!
Key difference: