我正在爲基於文本的遊戲構建解析器,嘗試更像它。所以我想將所有可能的動詞和名詞存儲到他們自己的字典中。但是我正在嘗試從字典中的字符串鍵時的錯誤...正在檢索字典<string,Action>
在我的字典類,我創建了動詞詞典,就像這樣:
public Dictionary<string, Action> Verbs = new Dictionary<string, Action>();
我再繼續添加一些價值它:
public void PopulateVerbs()
{
Verbs.Add("MOVE", Action.MoveAction);
}
在我VerbAction課,我有一個基於輸入該做的東西的方法:
Action Move = dictionary.Verbs["MOVE"];
public void MoveAction()
{
Console.WriteLine("You moved...");
}
最後,在我的CommandHandler類,我處理輸入:
if (InputToken[0] == dictionary.Verbs["MOVE"])
Action.MoveAction();
而且這是我得到的錯誤,它說,[「MOVE」]我想要檢索的字符串其實一個動作,所以我有點困惑。我在這裏錯過了什麼?
所以基本上你所擁有的(結果)是「行動」 。意思是動詞[「string」] =動作the_action_you_defined'。當你定義'Dictionory someDictionary =新詞典''someDictionary [TKey]'返回類型'TValue' –
Jaya
現在是有道理,謝謝你清理! – Maxwell
這個代碼中的「Action」是一個自定義的'enum'還是內置的'delegate'尚不清楚。第二個代碼片段指示前者。最終的代碼片段指示後者。 –