正在检索字典<string, Action>
Retrieving dictionary<string, Action>
我正在为一个基于文本的游戏构建一个解析器,尝试一下就好了。所以我想把所有可能的动词和名词存入自己的字典中。但是当我尝试从字典中检索字符串键时出现错误...
在我的词典 class 中,我创建了 Verbs 词典,如下所示:
public Dictionary<string, Action> Verbs = new Dictionary<string, Action>();
然后我继续为其添加一些值:
public void PopulateVerbs()
{
Verbs.Add("MOVE", Action.MoveAction);
}
在我的 VerbAction class 中,我有一些基于输入的方法:
Action Move = dictionary.Verbs["MOVE"];
public void MoveAction()
{
Console.WriteLine("You moved...");
}
最后,在我的 CommandHandler class 中,我处理输入:
if (InputToken[0] == dictionary.Verbs["MOVE"])
Action.MoveAction();
这就是我收到错误的地方,它说我要检索的 ["MOVE"] 字符串实际上是一个操作,所以我有点困惑。我在这里错过了什么?
Verbs["MOVE"] 将获得与 key "MOVE" 一起存储的 value,因此它将return 在这种情况下是一个动作。我假设 InputToken 是一个字符串列表,并且假设您有一个包含代表您的操作的 string/action 值的字典,我可能会尝试这样的操作,这样您就不需要一堆 if 检查:
拿
if (InputToken[0] == dictionary.Verbs["MOVE"])
Action.MoveAction();
并利用字典来发挥自己的优势:
Action theAction = dictionary.Verbs[InputToken[0]];
theAction();
你也可以进一步压缩:
dictionary.Verbs[InputToken[0]]();
此外,该词典非常强大 class,因此您可以使用它的功能开始添加错误处理检查(如果 Verbs.ContainsKey,等等)
我正在为一个基于文本的游戏构建一个解析器,尝试一下就好了。所以我想把所有可能的动词和名词存入自己的字典中。但是当我尝试从字典中检索字符串键时出现错误...
在我的词典 class 中,我创建了 Verbs 词典,如下所示:
public Dictionary<string, Action> Verbs = new Dictionary<string, Action>();
然后我继续为其添加一些值:
public void PopulateVerbs()
{
Verbs.Add("MOVE", Action.MoveAction);
}
在我的 VerbAction class 中,我有一些基于输入的方法:
Action Move = dictionary.Verbs["MOVE"];
public void MoveAction()
{
Console.WriteLine("You moved...");
}
最后,在我的 CommandHandler class 中,我处理输入:
if (InputToken[0] == dictionary.Verbs["MOVE"])
Action.MoveAction();
这就是我收到错误的地方,它说我要检索的 ["MOVE"] 字符串实际上是一个操作,所以我有点困惑。我在这里错过了什么?
Verbs["MOVE"] 将获得与 key "MOVE" 一起存储的 value,因此它将return 在这种情况下是一个动作。我假设 InputToken 是一个字符串列表,并且假设您有一个包含代表您的操作的 string/action 值的字典,我可能会尝试这样的操作,这样您就不需要一堆 if 检查:
拿
if (InputToken[0] == dictionary.Verbs["MOVE"])
Action.MoveAction();
并利用字典来发挥自己的优势:
Action theAction = dictionary.Verbs[InputToken[0]];
theAction();
你也可以进一步压缩:
dictionary.Verbs[InputToken[0]]();
此外,该词典非常强大 class,因此您可以使用它的功能开始添加错误处理检查(如果 Verbs.ContainsKey,等等)