4、預定義引用類型。
A、object類型。
這是C#的基類,所有的類都派生自它。所以,可以使用object引用綁定任何子類型的對象,object類 型執行許多基本的一般用途的方法,如 Equals() GetHashCode(),GetType()等,我們需要針對某些方法 進行“重寫”,這在後面我們將會學習到。
B、string類型。
注意,string類型是屬於引用類型。我們來看下面一段代碼,在修改一個字符串的時候,實際上是創 建了一個新的字符串,而並非修改了原來在字符串。我們來看一個示例:
using System;
using System.Windows;
namespace gosoa.com
{
class MyFirstClass
{
static void Main()
{
string str1="GoSoA.com.cn";
string str2=str1;
Console.WriteLine("str1="+str1);
Console.WriteLine("str2="+str2);
str1="www.GoSoA.com.cn";
Console.WriteLine("str1="+str1);
Console.WriteLine("str2="+str2);
}
}
}
在這個示例中會輸出
str1="GoSoA.com.cn";
str2="GoSoA.com.cn";
str1="www.GoSoA.com.cn";
str2="GoSoA.com.cn";
這和我們所預期的引用類型正好相反,為什麼呢?
因為當我們用“GoSoA.com.cn”來初始化str1的時候,就在堆上分配了一個
string對象,當初始化str2的時候,也指向了這個對象。當str1改變的時候,並不是修改了原有的對 象,而是新創建了一個對象,但str2還是指向原來的對象,所以,str2的值並未改變。