靜態成員屬于類而不是實例。靜態成員的應用范圍很廣,比如,可在應用程序的全局內獲取或設置公共的靜態成員的值,這類似C++的全局變量,但是使用不當也會有麻煩。
class Test { PRivate static string strStaticName = "Hello"; //無參構造器 public Test() { } //有參構造器 public Test(string strName) { strStaticName = strName; }
public string GetName() { return strStaticName; }
}
static void Main(string[] args) { Console.WriteLine("創建t1實例時,名稱設置為東方"); //創建實例t1 Test t1 = new Test("東方"); Console.WriteLine("所以使用GetName方法獲取的名稱為:{0}",t1.GetName()); Console.WriteLine("");
//創建實例t2 Console.WriteLine("創建t2實例時,名稱未設置"); Test t2 = new Test(); string strName = t2.GetName(); Console.WriteLine("但通過GetName方法獲取的名稱卻為:{0}",strName); Console.Read();
}
調試后:

分析:在一個應用程序中,無論創建了一個類的多少實例,該類的靜態字段都只被初始化一次。
解決:1)取消靜態關鍵字static
2)都使用有參的構造器
3)在無參構造器中,給靜態字段賦值
public Test()
{
strStaticName="Hello";
}
新聞熱點
疑難解答