日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

C#中的值類型與引用類型-譯自《Essential C# 4

系統(tǒng) 2897 0

一、值類型

  除去string外,所有的預(yù)定義基礎(chǔ)類型都是值類型。值類型直接包含值。換句話說,該變量指向內(nèi)存中存儲(chǔ)(變量)值的同一地址。
正因?yàn)槿绱耍?dāng)一個(gè)不同的變量被分配了相同的值,原始變量的值的內(nèi)存副本改變到新的變量的地址。一個(gè)相同值類型的第二個(gè)變量不能指向內(nèi)存中的第一個(gè)變量相同的地址。因此,改變了第一個(gè)變量的值不會(huì)影響到第二個(gè)值。

如下圖:

  如上圖,number1指向包含值42的內(nèi)存中的特殊地址,將number1分配給number2后,這兩個(gè)變量都包含值42。然而,修改任何一個(gè)變量的值不影響另外一個(gè)。

  類似地,傳遞一個(gè)值類型到一個(gè)方法(類如Console.WriteLine())會(huì)導(dǎo)致內(nèi)存復(fù)制,方法中參數(shù)的任何改變不會(huì)影響調(diào)用函數(shù)范圍內(nèi)的原始值。因?yàn)橹殿愋托枰粋€(gè)內(nèi)存復(fù)制,通常它們應(yīng)當(dāng)被定義為小額內(nèi)存開銷(小于16字節(jié))

二、變量類型

  引用類型和引用它們的變量指向數(shù)據(jù)存儲(chǔ)地址。引用類型存儲(chǔ)了數(shù)據(jù)存儲(chǔ)地址的引用,而不是直接存儲(chǔ)數(shù)據(jù)。因此,訪問數(shù)據(jù)時(shí),運(yùn)行時(shí)將讀取(引用變量的)內(nèi)存位置,并跳到包含數(shù)據(jù)的內(nèi)存地址。一個(gè)引用類型指向的數(shù)據(jù)內(nèi)存區(qū)域是一個(gè)Heap(堆),如下圖

  一個(gè)引用類型并不像值類型那樣需要數(shù)據(jù)的相同的內(nèi)存副本,后者效率更高但會(huì)導(dǎo)致一些問題。當(dāng)把一個(gè)引用類型的變量值賦給另外一個(gè)引用類型變量時(shí),僅 有一次地址的內(nèi)存復(fù)制發(fā)生,因此,引用類型需要的內(nèi)存復(fù)本總是內(nèi)存地址本身大小(32位處理器復(fù)制32bit,64位處理器復(fù)制64bit)。

  顯然,不復(fù)制數(shù)據(jù)將比值類型的(復(fù)制)快一些,特別是后者的數(shù)據(jù)較龐大時(shí)。由于引用類型僅僅復(fù)制數(shù)據(jù)的地址,兩個(gè)不同的變量能指向相同的數(shù)據(jù),通過 一個(gè)變量改變數(shù)據(jù)將改變另一個(gè)變量。在賦值或方法調(diào)用時(shí)均如此。因此,一個(gè)方法會(huì)影響引用類型的數(shù)據(jù)并返回給調(diào)用者。由于這個(gè)原因,選擇定義一個(gè)變量為值 類型還是引用類型的決定性因素是該對(duì)象是否在邏輯上是一樣的大小不變的固定值,如果是,則值類型。

  string,自定義的類屬于引用類型。

--邀月譯自《Essential C# 4.0》

附:

值類型:基礎(chǔ)數(shù)據(jù)類型(整型、布爾型、字符型、實(shí)數(shù)型)、結(jié)構(gòu)型、枚舉型。
引用類型:類、對(duì)象、string、數(shù)組、接口、委托。

邀月注:本文版權(quán)由邀月和CSDN共同所有,轉(zhuǎn)載請(qǐng)注明出處。
助人等于自助! 3w@live.cn

C#中的值類型與引用類型-譯自《Essential C# 4.0》


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 辛集市| 托克托县| 墨竹工卡县| 筠连县| 保亭| 扬中市| 丹寨县| 庄浪县| 屏边| 江安县| 鲁山县| 东海县| 武安市| 沐川县| 晋江市| 太保市| 夏津县| 绥化市| 江门市| 昔阳县| 竹山县| 兴海县| 南华县| 乌苏市| 鹤岗市| 长乐市| 邵阳市| 理塘县| 康马县| 大关县| 绥德县| 岐山县| 井研县| 河池市| 淮阳县| 郎溪县| 静乐县| 房产| 竹山县| 翁牛特旗| 中卫市|