一個類的對象叫實例,得到一個對象就叫做實例化。有些變量在定義的時候要加上New進行實例化,有些變量在定義的時候不加New進行實例化,例如:Dim EnCard asnew CardInfoEntity 與 Dim dt as Datatable,這是為什麼呢?其實加New就是對其變量進行實例化,為其進行分配空間,而不加New則是只定義變量,不為其分配空間。 那麼什麼時候是變量聲明和實例化的時機呢?如下舉例:
<span style="font-size:14px;">namespace Recharge
{
class Class1
{
Class2 class2 = new Class2();
//這是在聲明成員對象的時候同時實例化。
public Class1()
{
//class2 =new Class2();
//這是在類定義的時候僅聲明成員對象,而在新建類對象實例的時候,再對類內部的對象成員統一實例化。
class2.output();
}
}
}</span>
<span style="font-size:14px;">
namespace Recharge
{
class Class2
{
int b=22;
//這是 在聲明成員變量的時候同時實例化(初始化)。
public Class2()
{
//b = 22;
//這是在成員變量定義的時候僅聲明,而在新建類對象實例的時候,
//再通過類的構造函數對類內部的成員統一初始化。
}
public void output()
{
Console.WriteLine(b.ToString());
}
}
}</span>
聲明和實例化(初始化)是不同的動作,處於概念上的清晰,推薦把二者分開。在微軟自動生成的代碼中,都是通過在類的構造函數中調用一個privatevoid InitializeComponent()函數來對類的成員進行實例化(初始化),而在類中僅對成員進行聲明,雖然在類定義聲明變量的時候,可以在語法上對其進行實例化,但這顯然不是一種概念清晰的做法。類的所有成員實例都是在類的實例被創建時才被創建的,推薦在程序的書寫上也體現出這種規則。