如何编辑属于库的枚举的值

本文关键字:枚举 属于 何编辑 编辑 | 更新日期: 2023-09-27 17:54:03

我正在尝试在c#中创建一个库,用于在主机上创建角色扮演游戏(从这里开始的rpg),其中包含由我编写的几个类生成的图形。我希望在使用这个库时,玩家能够创建许多房间,就像典型的rpg一样。为此,我有一个公共枚举,命名为Rooms。问题是,Rooms将不会被用户编辑,因为它将是库的一部分,而不是他们的Program.cs,这应该是他们所需要的,使他们的RPG功能与适当的图形(这需要Rooms有一定的值)。然而,他们需要选择在游戏中想要的房间,所以这是行不通的。

我怎样才能绕过这个?我希望也许有人可以使用XML文件(也许您会运行一次程序来获取XML文件中的值并将它们放入Rooms enum中,然后然后开始编写RPG)、字典或数组来生成枚举的值,但我不确定这是否可能。

我如何才能以一种方便RPG制作者的方式去做这件事(重申一下,目标是使编码器能够只编辑Program.cs文件)?如果将RPG套件作为Visual Studio解决方案提供给程序员,让他们能够自己编辑所有内容,这是否更有意义?

如何编辑属于库的枚举的值

我建议Rooms不应该是enum。它应该是一个抽象类

public abstract class Room {
    public abstract string RoomType {get;}
}

使用您的库的开发人员将创建他们自己的Room的派生类:

public class ClassRoom : Room {
    public override string RoomType {get {return "ClassRoom";}}
}

然后,您的库可以使用反射来查找Room的所有派生类型,以用于显示或其他目的。