【发布时间】:2018-01-28 20:58:19
【问题描述】:
这是我的代码WorldServer.cs:
public class JsonData
{
public string header;
public Dictionary<string, string> data = new Dictionary<string, string>();
public int connectionId;
}
namespace Server
{
public class WorldServer
{
private Character character = new Character();
void Test()
{
character.UpdateCharacterState();
}
public void Broadcast()
{
Console.WriteLine("We in Broadcast");
}
}
}
这是我的Character.cs:
public class Character : WorldServer
{
public void UpdateCharacterState()
{
Console.WriteLine("State:");
Broadcast();
}
}
当我尝试运行我的代码时,我收到以下错误:
引发了“System.StackOverflowException”类型的异常。
我有一个基类WorldServer 和一个扩展它的Character。我必须从WorldServer 类调用UpdateCharacterState 方法,并从Character 类调用Broadcast 方法,该方法在WorldServer 类中声明。有可能吗?怎么做?
你能告诉我我的错误在哪里,我该如何解决?
【问题讨论】:
-
每次构造一个
Character的实例,它继承自WorldServer,你又构造了另一个Character,它继承自WorldServer,所以需要构造一个Character,继承自……你看到了吗? -
我明白你的意思,但我对
C#很陌生。你能回答我如何制作这个结构吗? -
对不起,我不完全明白你想要完成什么,所以我无法实现它。
-
为什么角色要从世界服务器继承?
-
古斯曼在这里提出了最好的问题:为什么角色会从世界服务器继承?这就像让狮子继承家具。当然有可能,但是当您只阅读类名时,它没有多大意义,不是吗?当一个类继承另一个类时,这意味着它是一种更具体的基类——桌子继承家具,狮子继承动物。角色如何是一种世界服务器?
标签: c#