首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 型別系統核心:值型別 vs 參考型別、裝箱與拆箱機制圖解

     編輯:關於C語言

兩大型別分類

  • 值型別:內建基本型別(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# 編譯器自動處理,語法更簡潔。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved