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