我试图在C#中创建一个库,用于在控制台中创建角色扮演游戏(RPG从这里开始),其中包含由我编写的几个类生成的图形。我想这样做,以便在使用图书馆时,可以创建一些房间,就像典型的RPG一样。为了这个目的,我有一个名为Rooms
的公开枚举。问题是Rooms
无法被用户编辑,因为它将成为库的一部分,而不是他们的Program.cs
,这应该是他们需要的所有才能使他们的RPG功能正常图形(需要Rooms
具有特定值)。但是,他们需要在游戏中选择他们想要的房间,所以这不起作用。
我该如何解决这个问题?我希望也许可以使用XML文件生成枚举的值(也许你会运行一次程序来获取XML文件中的值并将它们放入Rooms
枚举中,并且然后开始编写您的RPG),字典或数组,但我不确定它是否可能。
我怎样才能以方便RPG制作者的方式进行此操作(重申一下,目标是让编码人员只能编辑Program.cs
文件)?将这个RPG工具包作为Visual Studio解决方案提供更有意义,以便编码人员可以自己编辑所有内容吗?
答案 0 :(得分:0)
我建议Rooms
不应该是enum
。它应该是一个抽象类。
public abstract class Room {
public abstract string RoomType {get;}
}
使用您的库的开发人员将创建自己的Room
派生类:
public class ClassRoom : Room {
public override string RoomType {get {return "ClassRoom";}}
}
然后,您的图书馆可以使用反射来查找Room
的所有派生类型,以用于显示或其他目的。