为什么当我尝试实例化一个类实例时,我是否得到StackOverFlowException?

flo*_*ode 0 c#

StackOverFlowException每当我实例化A类的实例时,我都会不断获取.我知道这与A.b字段是从类A派生的类型有关.但为什么会导致异常呢?

static void Main(string[] args)
{
     A a = new A(); // exception
}

class A 
{
    private B b = new B();
}

class B:A {}
Run Code Online (Sandbox Code Playgroud)

谢谢

Rob*_*cus 5

因为B是从A继承的,所以每次创建A时,都会创建一个B,然后创建另一个B.你基本上创建了一个无限循环的类创建.