創作內容

1 GP

[C#]Value Type (實值型別) vs. Reference Type (參考型別)

作者:窗台上的兔子│2018-07-20 16:01:59│巴幣:2│人氣:359

C# 會將記憶體分為兩大用途︰Stack 與 Heap。

C# 中所有的區域變數 (不管是 Value Type 或是 Reference Type),其內容 (變數名稱、型別與與值) 都是儲存在 Stack 中。

Value Type 變數儲存的內容是「實值」。

Reference Type 變數儲存的內容是「參考」。使用 new 關鍵字實體化類別的物件,其物件內容是儲存在 Heap 中。Reference Type 變數中所儲存的參考,便是指向 Heap 中的記憶體起始位址。

傳遞變數時,是以Stack中的值、址複製後傳遞,所以傳值(Call / Pass by value)資料量比較大時,便顯得相當耗時。而傳址(Call / Pass by reference)免去複製其他變數內容資料,所以相對比較有效率。

傳遞給方法時是複製Stack的值給方法使用,除非使用 ref 關鍵字。

參考資料

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4064219
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★lun093611 可決定是否刪除您的留言,請勿發表違反站規文字。

後一篇:[C#] 字串插值...

追蹤私訊切換新版閱覽

作品資料夾

zxc996344大家
歡迎大家來小屋看看創作~看更多我要大聲說1小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】