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-01
C#?使用EntityFramework?CodeFirst?創(chuàng)建PostgreSQL數(shù)據(jù)庫的詳細(xì)過程
這篇文章主要介紹了C#使用EntityFramework?CodeFirst創(chuàng)建PostgreSQL數(shù)據(jù)庫的過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
C#利用OLEDB實現(xiàn)將DataTable寫入Excel文件中
這篇文章主要為大家詳細(xì)介紹了C#如何利用OLEDB實現(xiàn)將DataTable寫入Excel文件中,文中的示例代碼簡潔易懂,具有一定的借鑒價值,需要的可以參考一下2023-02-02

