C#托管堆對(duì)象實(shí)例包含內(nèi)容分析
本文以實(shí)例形式分析了C#托管堆對(duì)象實(shí)例包含的內(nèi)容,有助于進(jìn)一步了解C#程序設(shè)計(jì)中的托管對(duì)象。分享給大家供大家參考。具體分析如下:
通常來(lái)說(shuō),每個(gè)托管堆上的對(duì)象實(shí)例除了包含本身的值外,還包括:
① Type Object Ponter: 指向Type對(duì)象實(shí)例。如果是同類型的對(duì)象實(shí)例,就指向同一個(gè)Type對(duì)象實(shí)例。
② Sync Block Index:在多線程情況下用來(lái)控制同步
如下實(shí)例所示:
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Cow cow1 = new Cow(); cow1.mooCount = 1; Cow cow2 = new Cow(); cow2.mooCount = 2; Type t1 = cow1.GetType(); Type t2 = cow2.GetType(); Console.WriteLine(t1.FullName); Console.WriteLine(t2.FullName); } } public class Cow { public int mooCount; } }
運(yùn)行結(jié)果:
ConsoleApplication1.Cow
ConsoleApplication1.Cow
○ 調(diào)用對(duì)象實(shí)例的GetType方法,可以獲取到Type類型對(duì)象,這就是所謂的反射
○ 以上的cow1和cow2的類型都是Cow,所以這2個(gè)實(shí)例指向同一個(gè)Type對(duì)象
用圖形表示的話如下圖所示:
另外,當(dāng)值類型調(diào)用GetType方法時(shí),會(huì)在托管堆上創(chuàng)建box,并有Type Object Pinter。
希望本文所述對(duì)大家C#程序設(shè)計(jì)的學(xué)習(xí)有所幫助。
相關(guān)文章
C#事件處理和委托event delegate實(shí)例簡(jiǎn)述
這篇文章主要介紹了C#事件處理和委托event delegate的簡(jiǎn)單實(shí)例,較為詳細(xì)的講述了C#事件處理和委托的聲明與實(shí)現(xiàn)過(guò)程,代碼簡(jiǎn)單易懂,需要的朋友可以參考下2014-09-09C#使用System.Threading.Timer實(shí)現(xiàn)計(jì)時(shí)器的示例詳解
以往一般都是用 System.Timers.Timer 來(lái)做計(jì)時(shí)器,其實(shí) System.Threading.Timer 也可以實(shí)現(xiàn)計(jì)時(shí)器功能,下面就跟隨小編一起來(lái)學(xué)習(xí)一下如何使用System.Threading.Timer實(shí)現(xiàn)計(jì)時(shí)器功能吧2024-01-01C#?使用EntityFramework?CodeFirst?創(chuàng)建PostgreSQL數(shù)據(jù)庫(kù)的詳細(xì)過(guò)程
這篇文章主要介紹了C#使用EntityFramework?CodeFirst創(chuàng)建PostgreSQL數(shù)據(jù)庫(kù)的過(guò)程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07C#利用OLEDB實(shí)現(xiàn)將DataTable寫入Excel文件中
這篇文章主要為大家詳細(xì)介紹了C#如何利用OLEDB實(shí)現(xiàn)將DataTable寫入Excel文件中,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,需要的可以參考一下2023-02-02