https://www.cnblogs.com/dirichlet/p/3266019.html?utm_source=itdadao&utm_medium=referral
結論
- 靜態構造函數不能有訪問修飾符,只能是
static
,且不能帶有參數。 - 實例化順序先靜態,後非靜態。先成員後構造函數。
- 實例化順序在
2
的基礎上受定義的順序影響,
示例
case-1
class A
{
public static A a = new A();
public static B b = new B();
static A()
{
Console.WriteLine("static A()");
}
public C c = new C();
public A()
{
Console.WriteLine("A()");
}
}
class B
{
public B()
{
Console.WriteLine("B()");
}
}
class C
{
public C()
{
Console.WriteLine("C()");
}
}
// 實例化結果爲:
C()
A()
B()
static A()
C()
A()
case-2
class A
{
// public static A a = new A();
public static B b = new B();
static A()
{
Console.WriteLine("static A()");
}
public C c = new C();
public A()
{
Console.WriteLine("A()");
}
}
class B
{
public B()
{
Console.WriteLine("B()");
}
}
class C
{
public C()
{
Console.WriteLine("C()");
}
}
// 實例化結果爲:
B()
static A()
C()
A()