一、預定義類型。
1、值類型和引用類型
C#中的數據類型,可以分為值類型和引用類型,值類型存儲在堆棧上,而引用類型存儲在托管堆上。
如下代碼示例,
int i=10;
int j=i;
i和j的值都是10,並且在內存中會有兩個地方存儲10.
再看下面的代碼
Vector x=new Vector();
x.Value=20;
Vector y=x;
Console.WriteLine(y.Value);
y.Value=50;
Console.WriteLine(x.Value);
Vector是一個引用類型,引用類型在使用的時候需要new 來實例化一個。這段代碼執行後,只有一個 Vector對象,x,y都指向包含該對象的內存地址。因為x,y存儲的都是對象的引用,所以當y改變的時候, x也會改變。所以該程序輸出的結果是20和50.
如果變量是一個引用,就可以把其值設置為null,表示不指向任何對象。
2、CTS類型。
C#的預定義類型並沒有內置於語言中,而是內置於.NET Framework中,比如聲明一個int類型時,實際 上是.Net結構System.Int32的一個實例。這說明,可以把所有的基本數據類型看作是支持某些方法的類。