C#:从文本文件中读取枚举

标签 c# enums xna stream

我正在使用 C# 和 XNA 制作 2D 游戏。我目前正在保存和加载,所有数据都存储在文本文件中。

每个 Sprite 都有一个状态:

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<...>>将状态映射到采取适当操作的委托(delegate)(lambda 表达式)。

关于C#:从文本文件中读取枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16148586/

相关文章:

c# - 写入 Windows 中正在运行的进程的标准输入

c# - Wpf RichTextBox 换行问题

wpf - 没有 WPF 的 XAML - 动画

c# - 无法将源类型转换为目标类型

c# - Controller 级别的默认授权角色和方法覆盖

java - 如何为给定对象创建枚举

C++ 枚举 : Assign a variable or use scope resolution?

Java:泛型只接受枚举类型

c# - 在 XNA 和 C# 中使用摩擦

c# - 我如何优化这个像素不透明度计算?