簡體   English   中英

C#:從文本文件中讀取枚舉

[英]C#: Reading enums from text file

我正在用C#和XNA制作2D游戲。 我目前正在保存和加載,所有數據都存儲在文本文件中。

每個精靈都有一個狀態:

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM