检索字典<字符串,动作>
本文关键字:动作 字符串 字典 检索 | 更新日期: 2023-09-27 18:08:17
我正在为一款基于文本的游戏创造一个解析器。所以我想把所有可能的动词和名词存储到他们自己的字典里。但是当我试图从字典中检索字符串键时,我得到了一个错误…
在Dictionary类中,我创建了动词字典,如下所示:
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"]字符串实际上是一个动作,所以我有点困惑。我遗漏了什么?
Verbs["MOVE"]将获取与键 "MOVE"一起存储的值,因此在本例中它将返回一个Action。我假设InputToken是一个字符串列表,并且假设你有一个充满字符串/动作值的字典,代表你的动作,我可能会尝试这样做,这样你就不需要一堆if检查:
花> 利用字典:
Action theAction = dictionary.Verbs[InputToken[0]];
theAction();
你也可以进一步压缩:
dictionary.Verbs[InputToken[0]]();
此外,字典是一个非常健壮的类,因此您可以使用它的特性开始添加错误处理检查(如果动词。ContainsKey等)