只是一個放在 父類A中new B
一個放在再一個上層的父類 Program 中new B
那么只要父類中new子類,但是子類有繼承自父類,
就陷入了 子類初始化時,先初始化了父類,然后父類又new 子類,子類繼續初始化的死回圈。
uj5u.com熱心網友回復:
那為啥我把兩個new物件都放到主方法里面卻沒有問題
uj5u.com熱心網友回復:
那為什么當A不繼承Program之后又可以了?
uj5u.com熱心網友回復:
把代碼發出來
uj5u.com熱心網友回復:
的回復:]
子類初始化先執行父類建構式。
其實你的代碼1和代碼2,是一樣的。
本質沒有區別。
只是一個放在 父類A中new B
一個放在再一個上層的父類 Program 中new B
那么只要父類中new子類,但是子類有繼承自父類,
就陷入了 子類初始化時,先初始化了父類,然后父類又new 子類,子類繼續初始化的死回圈。
那為啥我把兩個new物件都放到主方法里面卻沒有問題
把代碼發出來
class Program
{
static void Main(string[] args)
{
A a = new A();
B b = new B();
Console.WriteLine("Ok");
}
}
class A:Program
{
//B b = new B();
}
class B :A{ }
uj5u.com熱心網友回復:
的回復:]
class Program
{
static void Main(string[] args)
{
A a = new A();
B b = new B();
Console.WriteLine("Ok");
}
}
class A:Program
{
//B b = new B();
}
class B :A{ }