using System;
namespace Sample
{
class Class1 {
static Class1() {
// Name="static"; // 不行,static function 只能存取 static member
StaticName = "StaticName";
Console.WriteLine( "Class1 static ctor()" );
}
public Class1() {
Console.WriteLine( "Class1 ctor()" );
}
public Class1( string name ) {
Console.WriteLine( "Class1 ctor( string )" );
Name = name;
}
public string Name { private set; get; }
public static string StaticName;
}
class MainClass
{
public static void Main(string[] args)
{
Class1 obj1 = new Class1("obj1");
Class1 obj2 = new Class1();
Class1 obj3 = new Class1("obj3");
Console.WriteLine("Hello World! {0}", Class1.StaticName );
}
}
}
執行結果如下:
Class1 static ctor()
Class1 ctor( string )
Class1 ctor()
Class1 ctor( string )
Hello World! StaticName
可以很清楚看到,無論如何,static ctor() 都會先被執行到,而且只會被執行一次。這很適合用來初始 static member。
沒有留言:
張貼留言