1樓:
一、資料型別在它自己的記憶體分配中儲存資料,則該資料型別就是“值型別”。值型別包括:
1、所有數字資料型別
2、boolean、char和date
3、所有結構,即使其成員是引用型別
4、列舉,因為其基礎型別總是sbyte、short、integer、long、byte、ushort、uinteger或ulong
二、“引用型別”包含指向儲存資料的其他記憶體位置的指標。引用型別包括:
1、string
2、所有陣列,即使其元素是值型別
3、類型別,如form
4、委託
擴充套件資料
值型別和引用型別使用注意事項
值型別的變數儲存到記憶體的執行緒的堆疊中;而引用型別的變數會儲存到託管堆中,其中這裡說的託管堆又可以分為gc堆、loh堆。其中gc堆、loh堆是根據建立的物件的大小來分配到不同的堆中的。
判斷的平衡點是這個物件是否超過85000位元組,如果小於85000位元組,則系統把物件儲存到gc堆中;如果大於或者等於85000位元組,則系統儲存到loh堆中(一般loh建立的物件是陣列)。所以託管堆就是指gc堆和loh堆的集合。
c#中什麼是值型別什麼是引用型別
在c#的資料型別中,什麼屬於值型別,什麼屬於引用型別
2樓:匿名使用者
值型別:整數,浮點copy數,高精度浮點數,布林,字元,結構,列舉引用型別:物件(object),字串,類,介面,委託,陣列除了值型別和引用型別,還有一種資料型別是空型別(null)gv整數,浮點數,高精度浮點數,布林,字元,物件(object),字串 是預定義的型別
結構,列舉,類,介面,委託,陣列 是複合型別
c#中 哪些是值型別 哪些是引用型別
3樓:竇碩伏曼雲
1.值型別的資料儲存在記憶體的棧中;引用型別的資料儲存在記憶體的堆中,而記憶體單元中只存放堆中物件的地址。
2.值型別存取速度快,引用型別存取速度慢。
3.值型別表示實際資料,引用型別表示指向儲存在記憶體堆中的資料的指標或引用
4.值型別繼承自system.valuetype,引用型別繼承自system.object
5.棧的記憶體分配是自動釋放;而堆在.net中會有gc來釋放
c#中基本資料型別是值型別,結構也是值型別。而陣列、類、介面、字串都是引用型別。
通俗點講值型別就是現金;引用型別就是存摺。
c#中資料型別中哪些屬於值型別,哪些屬於引用型別
4樓:澤恥萱杭
值型別:整數,浮點數,高精度浮點數,布林,字元,結構,列舉引用型別:物件(object),字串,類,介面,委託,陣列除了值型別和引用型別,還有一種資料型別是空型別(null)gv整數,浮點數,高精度浮點數,布林,字元,物件(object),字串 是預定義的型別
結構,列舉,類,介面,委託,陣列 是複合型別
C陣列為引用還是值型別?若是引用型別,下邊該怎樣理解
陽光的雷咩咩 這確實是比較難以理解的現象,網上查了一下,說什麼堆之類的規則,總的來說就是陣列內元素為引用,陣列本身不是 似乎有點牽強。如果你在函式和呼叫處都加上ref就是完全的物件引用。參考資料 朽木擼其芽 也許可以這樣理解,陣列是值型別,但是他的值是地址,所以你的change n 函式改變的是陣列...
c中值型別和引用型別的區別
大野瘦子 1 速度上的區別 值型別存取速度快,引用型別存取速度慢。2 用途上的區別 值型別表示實際資料,引用型別表示指向儲存在記憶體堆中的資料的指標或引用。3 上的區別 值型別繼承自system.valuetype,引用型別繼承自system.object 4 位置上的區別 值型別的資料儲存在記憶體...
c語言中的布林型別 列舉型別是個什麼概念
c 有bool型別,標準c沒有布林型別,用整型代替布林型別,非0表示真,0表示假,bool就是int 列舉是用識別符號表示的整型常數集合,這些常數是該型別變數可取的合法值,這些識別符號稱為列舉常量。定義 enum 比如enum weekday 就表示定義了3個列舉型常量,預設他們的值是從0開始,依次...