VB 2010 (3) 值型別和引用型別

2021-10-23 00:17:44 字數 1356 閱讀 3998

值型別表示位於堆疊上的簡單資料儲存。堆疊用於大小已知的資料項,所以堆疊上的資料項檢索起來比託管堆上的資料項塊。堆疊是乙個比較小的記憶體區域,程序和執行緒在其中儲存大小固定的資料塊。

引用型別基於派生於其父類的複雜類,儲存在託管堆上。託管堆進行了優化,以支援不同大小的物件的動態記憶體分配。引用型別沒有固定的大小。引用型別的位址可以儲存堆疊上。

值型別變數,system.drawing空間的一部分

引用型別變數,system.text空間的一部分。

'ptx變,pty不會變

ptx.x = 200

textbox1.text = "pt y= " & pty.tostring

end sub

private sub reftype()

dim objx as system.text.stringbuilder = new system.text.stringbuilder("hello world.")

dim objy as system.text.stringbuilder

objy = objx

'objx變化,objy也會變,淺複製(shallow copy)

objx.replace("world", "test")

textbox1.text = "objy = " & objy.tostring

end sub

end class

引用型別和值型別

c 是一種型別安全的語言。每乙個變數都要求定義為乙個特定的型別,並且要求儲存在變數中的值只能是這種型別的值。變數既能儲存值型別,也可以儲存引用型別,還可以是指標。這一課將講述前兩種型別,關於指標的討論我們將在下一課中進行。下面是關於值型別和引用型別不同點的概論 如果乙個變數v儲存的是值型別,則它直接...

引用型別和值型別

c 中值型別和引用型別作為方法引數傳遞的時候其實都可以說是 值 的傳遞,只不過這裡的 值 指代的東西有所區別。當方法的引數為值型別時,方法傳遞的是值本身的值。當方法的引數為引用型別時,方法傳遞的則是應用型別的引用的位址,也就是引用型別位址在棧上的值。舉個引用型別作為引數傳遞的例子 static vo...

值型別和引用型別

為了更好地說明兩種型別之間的區別,借用如下的 來說明 值型別引用型別 記憶體分配地點 分配在棧中 分配在堆中 效率效率高,不需要位址轉換 效率低,需要進行位址轉換 記憶體 使用完後,立即 使用完後,不是立即 等待gc 賦值操作 進行複製,建立乙個同值新物件 只是對原有物件的引用 函式引數與返回值 是...