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

C# 初始化类中的子类对象-StackOverflowException,c#,object,initialization,stack-overflow,C#,Object,Initialization,Stack Overflow,我将代码剥离到导致问题的部分。代码在这里来回跳转第5行和第9行,导致stackoverflowexception 我怎么能做得不一样呢?我需要游戏类中的平台实例来在函数中使用 namespace Games { public class Game { private Platform platform = new Platform(); } class Platform : Game { private bool[] squ

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

我怎么能做得不一样呢?我需要游戏类中的平台实例来在函数中使用

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

当创建
游戏
实例时,它将创建
平台
的实例,该实例将调用基类构造函数,该基类构造函数将创建
平台
的实例,该实例将调用基类构造函数,该基类构造函数将

看到这是什么了吗


您应该在尝试使用游戏的地方使用
平台
。许多人会争辩说根本不使用继承。考虑构图,在你的案例中可能意味着<代码>游戏具有类型<代码>平台< /代码>的属性,但是<代码>平台< /代码>不继承从<代码>游戏< /代码>。< /P>不要使<代码>平台< /代码> <代码>游戏的子类。这解决了问题,非常感谢!这是一份学校作业,我想我看错了班级图表;在我看来,这是stackoverflow的一个完美问题。这在现在是有意义的。我试图很糟糕地解决这个问题,并认为这样的事情正在发生,但这很好地解释了。谢谢你,先生。