我的代码有问题,但我不知道在哪里。 我试图从枚举集合/类中返回枚举值。 但是,当我尝试这样做时,它不返回值,而是返回一些实际的枚举值。
E.G
thisisamaptype = 5;
将返回“5”而不是Enum名称为自己。
有没有办法从方法提供的相关数字中获取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));
}
}
答案 0 :(得分:1)
你的代码对我有用,所以我很困惑。
// Used my own enums
public enum MapTypes
{
One, Two, Three, Four, Five
}
// I had to make this static since it's being used in a static method
static Random rnd = new Random();
public static MapTypes GetMapType(string Type)
{
switch (Type.ToLower())
{
default:
case "default":
// Changed first parameter of Next to 0 to include the first enum in the randomization
return (MapTypes)(rnd.Next(0, Enum.GetNames(typeof(MapTypes)).Length));
break;
}
}
在控制台应用程序中使用您的代码:
MapTypes myMapType = GetMapType("default");
Console.WriteLine(myMapType);
Console.WriteLine("Done");
Console.ReadLine();
输出:
答案 1 :(得分:0)
假设我理解正确,你的方法返回枚举类型,所以使用方法返回的值,你可以使用.ToString()输出“thisisamaptype”