如何编辑作为库的枚举的值

时间:2015-06-06 23:47:12

标签: c# xml algorithm dll enums

我试图在C#中创建一个库,用于在控制台中创建角色扮演游戏(RPG从这里开始),其中包含由我编写的几个类生成的图形。我想这样做,以便在使用图书馆时,可以创建一些房间,就像典型的RPG一样。为了这个目的,我有一个名为Rooms的公开枚举。问题是Rooms无法被用户编辑,因为它将成为库的一部分,而不是他们的Program.cs,这应该是他们需要的所有才能使他们的RPG功能正常图形(需要Rooms具有特定值)。但是,他们需要在游戏中选择他们想要的房间,所以这不起作用。

我该如何解决这个问题?我希望也许可以使用XML文件生成枚举的值(也许你会运行一次程序来获取XML文件中的值并将它们放入Rooms枚举中,并且然后开始编写您的RPG),字典或数组,但我不确定它是否可能。

我怎样才能以方便RPG制作者的方式进行此操作(重申一下,目标是让编码人员只能编辑Program.cs文件)?将这个RPG工具包作为Visual Studio解决方案提供更有意义,以便编码人员可以自己编辑所有内容吗?

1 个答案:

答案 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的所有派生类型,以用于显示或其他目的。