C#實值型別與參考型別

來源:互聯網
上載者:User

標籤:

資料有實值型別與參考型別,我們通常把參考型別的常量叫做執行個體

一、常量儲存位置不同:
實值型別常量在棧中,執行個體在託管堆中。

二、變數與常量的對應關係不同:
實值型別變數的獨立性:常量本身儲存在變數內建的儲存空間裡,一個變數對應一個常量。
參考型別變數與執行個體的多對一關聯性:變數只儲存常量所在的地址,同一個執行個體可以被多個變數引用。

三、初始設定變數時內部操作不同:

1.初始化實值型別變數
當給一個實值型別變數賦值,會複製常量,放入變數中。

2.初始化引用變數
當給一個參考型別變數賦值,變數中儲存的是執行個體的地址。
3.裝箱
若用一個實值型別常量給一個參考型別變數賦值,CLR嘗試根據該常量,封裝一個執行個體,再把該執行個體地址放到變數中。

int a=5;Object o=a;//裝箱,根據5被封裝一個參考型別常量,用o儲存對象地址。

總結:為了效率,把整型、浮點型這些常用類型設定成實值型別。
但有些CLR某些函數只接受參考型別參數,因此有了裝箱與拆箱來把操作實值型別常量封裝成相應的參考型別,方便操作它們。

 

C#實值型別與參考型別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.