.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)
.Net中的Object包含了這三個部分
指向頭部的指針
指向類型信息的指針
字段內(nèi)容
微軟有一張更全的圖(說明的是.Net Framework的結(jié)構(gòu),但是基本和.Net Core一樣)