.Net程序員們每天都在和Object在打交道
如果你問一個.Net程序員什么是Object,他可能會信誓旦旦的告訴你"Object還不簡單嗎,就是所有類型的基類"
這個答案是對的,但是不足以說明Object真正是什么

在這篇文章我們將會通過閱讀CoreCLR的源代碼了解Object在內(nèi)存中的結(jié)構(gòu)和實際到內(nèi)存中瞧瞧Object

Object在內(nèi)存中的結(jié)構(gòu)

為了便于理解后面的內(nèi)容,我先用一張圖說明Object在內(nèi)存中的結(jié)構(gòu)

Android培訓(xùn),安卓培訓(xùn),手機開發(fā)培訓(xùn),移動開發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

.Net中的Object包含了這三個部分

  • 指向頭部的指針

  • 指向類型信息的指針

  • 字段內(nèi)容

微軟有一張更全的圖(說明的是.Net Framework的結(jié)構(gòu),但是基本和.Net Core一樣)