【发布时间】:2020-03-16 18:16:58
【问题描述】:
我正在创建一个对话系统,我想使用多态性来简化工作,所以我有一个类,它是包含 List dialog_tree 的对话树......然后我有 TextBoxNPC、TextBoxText、TextBoxItem 等,所以我可以拥有如果我愿意,每个页面都会显示不同类型的对话框。每个 TextBox 都有一个它是什么类型的文本框的枚举,当我想更改不在基类中的变量时就会出现问题。
public class Dialogue_Tree
{
List<TextBox> dialogues = new List<TextBox>();
public Dialogue_Tree()
{
dialogues.Add(new TextBoxNPC());
dialogues[0].
}
}
如果在 textboxnpc 我有 Sprite npc_portrait 我无法更改它,因为它被视为 TextBox。 所以即使我投了它,我也会得到一个空异常,无论如何要这样做吗?
我唯一的其他选择是只有一个类 TextBox 并且它具有每种不同类型的对话所需的每个变量,但是每个文本框页面都有 35 个未使用的变量,这似乎是一种资源浪费。
【问题讨论】:
标签: c# list variables polymorphism parent-child