初始化类中的子类对象-StackOverflowException

时间:2018-11-18 13:21:23

标签: c# object initialization stack-overflow

我将代码剥离到了导致问题的部分上。代码在这里来回跳到第5和9行,从而导致stackoverflowexception。

我该怎么做呢?我需要Game类内部的Platform实例才能在函数中使用。

namespace Games
{
    public class Game
    {
        private Platform platform = new Platform();
    }
    class Platform : Game
    {
        private bool[] squares = new bool[9];
    }
}

1 个答案:

答案 0 :(得分:1)

创建Game实例时,它将创建Platform实例,该实例将调用基类构造函数,而该实例将创建Platform实例,该实例将调用基类构造函数。 ..

看看这将导致什么?

您应在尝试使用Platform的地方使用Game。许多人会争辩说根本不使用继承。考虑一下合成,在您的情况下,它可能意味着Game具有类型Platform的属性,但是Platform并非继承自Game