C#:从文本文件读取枚举
问题描述:
我正在用C#制作2D游戏#& XNA。我正在进行保存和加载,所有的数据都存储在文本文件中。C#:从文本文件读取枚举
每个精灵都有一个状态:
public enum SpriteState
{
Alive,
Dead,
Chasing,
Sleeping,
Waiting
}
当保存我只是在执行这行代码:
StreamWriter.WriteLine(gameState);
现在,当我加载游戏我遇到阅读该文本文件的行存储它在一个字符串变量,并执行以下几乎足够:
string inType = StreamReader.ReadLine();
if(inType == "Alive")
//Set the sprites state to alive
else if(inType == "Dead")
//Set the sprites state to alive
等等...所以我的问题是:是否有从文本文件中读取枚举类型并分配它的更好方法?
非常感谢
答
您正在寻找
(SpriteState) Enum.Parse(typeof(SpriteState), inType)
这将解析字符串转换为枚举值。
您可能还希望有一个Dictionary<SpriteState, Action<...>>
映射状态到采取适当操作的委托(lambda表达式)。
答
试试这个:
Enum.Parse(typeof(SpriteState), yourString);
您也可以使用这个方法:
public static T ParseEnum<T>(string value)
{
return (T)Enum.Parse(typeof(T), value, true);
}
+0
太棒了,谢谢!没有意识到你可以解析一个枚举 - 将在时间限制用完时接受你的答案! – 2013-04-22 13:43:46
这是辉煌的,三江源!没有意识到你可以解析一个枚举 - 将在时间限制用完时接受你的答案! – 2013-04-22 13:43:13