char、int、float)、struct 定義的使用者型別。變數直接包含資料。class、陣列、委派等。變數儲存「參考」,指向堆疊上的物件實例。int i = 10;
int j = 20;
int k = i; // 複製值,互不干擾

圖 1:值型別各自佔有獨立記憶體位置,修改其中一個不影響其他。
MyClass a = new MyClass();
MyClass b = a; // 複製參考,指向同一物件

圖 2:a 與 b 指向同一堆疊物件,修改任一者屬性皆會反映到另一者。
object)int valueVariable = 10;
// 裝箱
object obj = valueVariable;
// 拆箱
int valueVariable2 = (int)obj;
Java 需手動用包裝類別(Integer 等)完成同樣操作;C# 編譯器自動處理,語法更簡潔。