请求的操作导致堆栈溢出

本文关键字:堆栈 栈溢出 操作 请求 | 更新日期: 2023-09-27 18:27:43

我试图创建一个派生类,但错误弹出。不太确定结果如何。请帮忙!

基本类别:

public class Command : identifiableobject
{
    LookCommand l = new LookCommand();
    public virtual string Execute (Player p, string[] text)
    {
        return "";
    public Command (string[] ids) : base(ids)
    {
    }
}

派生类

public class LookCommand : Command
{
    public LookCommand () : base (new string[] {"look"})
        {
        }
}

当我尝试创建一个新的命令对象时,会弹出错误。有什么想法吗?

请求的操作导致堆栈溢出

这就是问题所在:

public class Command : identifiableobject
{
    LookCommand l = new LookCommand();
    ...

这意味着,为了构造一个Command,您需要构造一个新的LookCommand。但是LookCommandCommand,所以构造一个LookCommand需要构造另一个,后者构造另一个中,等等

我们不知道您试图在这里使用l变量实现什么,但这就是导致要么您需要去掉该变量,要么不以这种方式初始化它,要么使LookCommand不从Command派生。