我将我的代码剥离到导致问题的部分。代码在这里来回跳转第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/