我正在尝试制作一个简单的 Roguelike 游戏来更好地学习 C#。我正在尝试创建一个通用方法,我可以给它一个 Enum 作为参数,它将返回该 Enum 中有多少元素作为 int。我需要使其尽可能通用,因为我将有几个不同的类调用该方法。
我已经搜索了最后一个小时左右,但我在这里找不到任何资源或其他可以完全回答我的问题的资源......我仍处于 C# 的初学者 - 中级阶段,所以我仍在学习所有事物的语法,但这是我到目前为止所拥有的:
// Type of element
public enum ELEMENT
{
FIRE, WATER, AIR, EARTH
}
// Counts how many different members exist in the enum type
public int countElements(Enum e)
{
return Enum.GetNames(e.GetType()).Length;
}
// Call above function
public void foo()
{
int num = countElements(ELEMENT);
}
它编译时出现错误“参数 1:无法从 'System.Type' 转换为 'System.Enum'”。我有点明白为什么它不起作用,但我只需要一些指导来正确设置所有内容。
谢谢!
PS:是否可以在运行时更改枚举的内容?当程序执行时?