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

标签 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];
    }
}

最佳答案

当一个 Game 实例被创建时,它会创建一个 Platform 的实例,它将调用基类构造函数,该构造函数创建一个 Platform 的实例,它将调用基类构造函数,它将...

看看这会导致什么?

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

关于c# - 初始化类中的子类对象 - StackOverflowException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53361321/

相关文章:

java - 异常处理和初始化

Java:用于初始化的 try-catch 与 if-else:性能

c# - 为什么窗口的卸载事件不会在 WPF 中触发?

java - 比较数组并比较两个数组中的每个元素

javascript - 我对 Object.entries()[i] 感到困惑

javascript - 如何使用javascript从数组中删除多个值?

Ruby 对象作为指针打印出来

c# - 如何使用不属于桌面的显示器 (Windows 7)

c# - WCF TimeoutException 尽管逐步显示成功返回

c# - 根据 API 使用情况动态创建编译器错误?