我正在为我的流制作一个 IRC 聊天机器人。我找到了一些使用 C# 的基本连接示例,因此我决定尝试一下。
到目前为止我喜欢它
但我被困在这一部分上。
我想将机器人命令存储在结构类型的数组中。
public delegate void cmdHandler(string[]);
struct botCommand
{
string name;
cmdHandler chandler;
bool isAdmin = false;
string help = "Nothing here.";
}
目前是我所拥有的,然后我希望能够做到这一点:
botCommand[]commands =
{
{ "TestCommand", testCommand(), 0, "Help for this" },
{ "TestCommand2", testCommand2(), 0 "..." },
......
};
那么如何链接该数组中的通用函数呢?
或者我是不是走错了路?
基本上,我不想有一个巨大的 Switch() 语句来检查使用了哪个命令,而是要遍历一个数组并查看该命令是否在其中。如果是,则调用与该命令关联的函数。
编辑:
这正是我现在所拥有的,因此您可以看到我正在尝试做的事情
public delegate void cmdHandler(string[] ex);
struct botCommand
{
string name;
cmdHandler chandler;
bool isAdmin = false;
string help = "Nothing here.";
}
botCommand[] commands =
{
{"test", new cmdHandler(testf), 0, "" }
};
public void testf(string[] ex) {
return;
}
逻辑步骤:
- 用户输入测试命令
- 循环遍历所有 botCommands 看看我们是否找到了测试命令
- 找到测试命令
- 调用与测试命令关联的函数并传递一个参数(命令的其余部分)