C 每天進步一點 引用型別和值型別

2022-01-20 16:38:07 字數 833 閱讀 4343

在剛參加工作面試時,我們經常會遇到有關值型別和引用型別的問題,你回答的怎麼樣直接影響你在別人心目中的印象,你回答的不好說明你對c#沒有深入的了解學習,今天我帶大家回顧下c#中的引用型別和值型別。

clr支援兩種型別:引用型別和值型別。雖然fcl中大多數型別都是引用型別但程式中用的最多的還是值型別。引用型別總是從託管堆上分配的,c#的new操作會返回物件的記憶體位址--也就是指向物件的資料的記憶體位址。

.net framework sdk文件清楚地指出哪些型別是引用型別,哪些是值型別。任何稱為「類」的型別都是引用型別,例如,system.exception 類、system.io.filestream 類以及system.random類都是引用型別。相反文件將所有的值型別稱為結構或列舉。例如, system.in32結構、system.boolean結構、system.decimal結構、system.dayofweek列舉以及system.drawing.fontstyle列舉都是值型別。

所有的結構都是抽象型別system.valuetype的直接派生類。system.valuetype本身又是system.object派生的,所有的值型別都必須從system.valuetype派生。所有的列舉都是從system.enum抽象型別派生,後者又是從system.valuetype派生的。

以下**演示了引用型別和值型別。

//引用型別(由於使用了『class』)

class someref

//值型別(由於使用了『struct』)

struct someval

static void valuetypedemo()

先就說這麼多了,希望對大家有所幫助,和大家一起進步。

關於引用型別和值型別一點體會

有list資料結構如下 name numbera2 a3b7 現在需要把name相同的項合併,number累加,就是下表 name numbera5 b7雖然邏輯可以控制list無重複項,為了保險,我選擇用dictionary作為中間物件來實現功能,如下 1 public listmergedata...

C 每天進步一點 事件

事件 如果型別定義了事件成員,那麼型別就可以通知其他物件發生了特定的事情。例如,button類提供了乙個名為click的事件。應用程式中的乙個或者多個物件可能想接收關於這個事件的通知,以便在button被點選後採取操作。下面我們利用乙個例子來加深我們對事件的理解 假定現在要設計乙個電子郵件應用程式,...

C 中對值型別和引用型別的一點認識

區別值型別和引用型別的重要一點就是值型別賦值的時候是給出一塊記憶體空間,空間裡放下要賦給值型別的值。而引用型別是開闢一塊記憶體空間,空間裡放下的是要賦給引用型別值的指向位址。就像乙個是複製了銀行卡裡的現金,你花了你複製的現金,和該銀行卡是沒有關係的。而引用型別是複製了乙個銀行卡,此卡為銀行卡的副卡,...