我将代码剥离到了导致问题的部分上。代码在这里来回跳到第5和9行,从而导致stackoverflowexception。
我该怎么做呢?我需要Game类内部的Platform实例才能在函数中使用。
namespace Games
{
public class Game
{
private Platform platform = new Platform();
}
class Platform : Game
{
private bool[] squares = new bool[9];
}
}
答案 0 :(得分:1)
创建Game
实例时,它将创建Platform
实例,该实例将调用基类构造函数,而该实例将创建Platform
实例,该实例将调用基类构造函数。 ..
看看这将导致什么?
您应在尝试使用Platform
的地方使用Game
。许多人会争辩说根本不使用继承。考虑一下合成,在您的情况下,它可能意味着Game
具有类型Platform
的属性,但是Platform
并非继承自Game
。