欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#引用類型和值類型的適用場合和區(qū)別

 更新時間:2019年01月22日 09:14:18   作者:Mogul1  
今天小編就為大家分享一篇關(guān)于C#引用類型和值類型的適用場合和區(qū)別,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

1.值類型

值類型包括:數(shù)值類型,結(jié)構(gòu)體,bool型,用戶定義的結(jié)構(gòu)體,枚舉,可空類型。

值類型的變量直接存儲數(shù)據(jù),分配在托管棧中。變量會在創(chuàng)建它們的方法返回時自動釋放。

所有的值類型都是密封(seal)的,所以無法派生出新的值類型。

2.引用類型

引用類型包括:數(shù)組,用戶定義的類、接口、委托,object,字符串,null類型,類。

引用類型的變量持有的是數(shù)據(jù)的引用,數(shù)據(jù)存儲在數(shù)據(jù)堆,分配在托管堆中,變量并不會在創(chuàng)建它們的方法結(jié)束時釋放內(nèi)存,它們所占用的內(nèi)存會被CLR中的垃圾回收機(jī)制釋放。 

CLR常用簡寫詞語,CLR是公共語言運(yùn)行庫(Common Language Runtime)和Java虛擬機(jī)一樣也是一個運(yùn)行時環(huán)境,它負(fù)責(zé)資源管理(內(nèi)存分配和垃圾收集等),并保證應(yīng)用和底層操作系統(tǒng)之間必要的分離。

3.值類型與引用類型區(qū)別:

4.適用場合:

值類型在內(nèi)存管理方面具有更好的效率,并且不支持多態(tài),適合用做存儲數(shù)據(jù)的載體;引用類型支持多態(tài),適合用于定義應(yīng)用程序的行為。

引用類型可以派生出新的類型,而值類型不能,因為所有的值類型都是密封的。

引用類型可包含null值,值類型不能(可空類型功能允許將null賦給值類型,如int a=null);

引用類型變量的賦值只復(fù)制對對象的引用,而不復(fù)制對象本身。而將一個值類型變量賦給另一個值類型變量時,將復(fù)制包含的值

5.裝箱和拆箱

1)裝箱就是將一個值類型轉(zhuǎn)換成等值的引用類型

在堆上為新生成的對象(該對象包含數(shù)據(jù),對象本身沒有名稱)分配內(nèi)存。

將堆棧上值類型變量的值拷貝到堆上的對象中。

將堆上創(chuàng)建的對象的地址返回給引用類型變量(從程序員角度看,這個變量的名稱就好像堆上對象的名稱一樣)。

2)拆箱就是將一個引用類型轉(zhuǎn)換成等值的值類型

將引用類型變量堆上的值拷貝到棧上面。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • c#?==操作符和equals方法的使用區(qū)別

    c#?==操作符和equals方法的使用區(qū)別

    在C#中,==操作符和Equals()方法有著不同的用途和行為,本文就來介紹一下c#?==操作符和equals方法的使用區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • C#中C/S端實現(xiàn)WebService服務(wù)

    C#中C/S端實現(xiàn)WebService服務(wù)

    本文主要介紹了C#中C/S端實現(xiàn)WebService服務(wù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • C#使用kernel32.dll讀寫INI文件的案例詳解

    C#使用kernel32.dll讀寫INI文件的案例詳解

    INI就是擴(kuò)展名為"INI"的文件,其實他本身是個文本文件,可以用記事本打開,主要存放的是用戶所做的選擇或系統(tǒng)的各種參數(shù),這篇文章主要介紹了C#使用kernel32.dll讀寫INI文件的方法,需要的朋友可以參考下
    2023-05-05
  • C#9特性record 類型、模式匹配、init 屬性詳情

    C#9特性record 類型、模式匹配、init 屬性詳情

    這篇文章主要介紹了C#的record 類型、模式匹配(Pattern Matching)、屬性的 init 訪問器三大特性,感興趣的小伙伴請參考下面文章內(nèi)容
    2021-09-09
  • C#如何連接數(shù)據(jù)庫

    C#如何連接數(shù)據(jù)庫

    這篇文章主要介紹了C#如何連接數(shù)據(jù)庫問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • C#通過GET/POST方式發(fā)送Http請求

    C#通過GET/POST方式發(fā)送Http請求

    本文主要介紹了C#實現(xiàn)http請求的兩種方式,get和post方式。文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • C#定時器組件FluentScheduler用法

    C#定時器組件FluentScheduler用法

    這篇文章介紹了C#定時器插件FluentScheduler的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#獲取某路徑文件夾中全部圖片或其它指定格式的文件名的實例方法

    C#獲取某路徑文件夾中全部圖片或其它指定格式的文件名的實例方法

    在本篇文章里小編給大家整理的是關(guān)于C#獲取某路徑文件夾中全部圖片或其它指定格式的文件名的實例方法,需要的朋友們參考下。
    2019-10-10
  • c# 基于任務(wù)的異步編程模式(TAP)的異常處理

    c# 基于任務(wù)的異步編程模式(TAP)的異常處理

    這篇文章主要介紹了c# 基于任務(wù)的異步編程模式的異常處理方法,幫助大家更好的理解和學(xué)習(xí)c#
    2020-11-11
  • C# URL短地址壓縮算法及短網(wǎng)址原理解析

    C# URL短地址壓縮算法及短網(wǎng)址原理解析

    這篇文章主要介紹了C# URL短地址壓縮算法及短網(wǎng)址原理解析,本文重點給出了算法代碼,需要的朋友可以參考下
    2015-03-03

最新評論