【发布时间】:2015-04-06 18:36:15
【问题描述】:
我的代码有问题,但我不确定在哪里。 我正在尝试从枚举集合/类中返回一个枚举值。 但是,当我尝试这样做时,它不是返回值,而是返回一个实际枚举值的数字。
E.G
thisisamaptype = 5;
将返回“5”而不是其自身的枚举名称。
有没有办法从方法提供的关联数中获取 Enum 值?
Random rnd = new Random();
public static MapTypes GetMapType(string Type)
{
switch (Type.ToLower())
{
default:
case "default":
return (MapTypes)(rnd.Next(1,Enum.GetNames(typeof(MapTypes)).Length));
}
}
【问题讨论】:
-
你有一个错误,
rnd.Next(1, n)不会永远导致你的枚举的第一个值被返回。您是否为枚举分配了值,或者这是期望的行为? -
另一方面,您确实应该将随机变量设为静态。
-
别担心,我只是为了举例。