【发布时间】:2015-10-27 02:30:02
【问题描述】:
我正在尝试使用 SteamKit2 创建一个用于 Steam 的聊天机器人。我在程序可以读取的文本文档中有一组预定义的消息,但我希望它在收到的消息不在此列表中时说出特定的响应。我尝试使用 if-else 语句,但是当我向机器人发送消息时,它只回复 else 响应,而不是预定义的响应。
while ((rLine = sReader.ReadLine()) != null) {
string text = rLine.Remove(rLine.IndexOf('|') - 1); //message | response
string response = rLine.Remove(0, rLine.IndexOf('|') + 2) ;
string realText = text.ToLower();
if (callback.Message.Contains(realText) || callback.Message.Contains(text))
{
steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, response);
Console.WriteLine("Someone has messaged me, and I replied with an automated message.");
sReader.Close();
return;
} else {
steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, "I don't know what you mean. Could you maybe write it a bit differently? <3");
Console.WriteLine("Someone has messaged me, and it wasn't on my auto-response list: {0}",callback.Message);
sReader.Close();
return;
}
}
谢谢。
【问题讨论】:
-
那是因为你(大概)循环遍历文件中的每一行。但是,如果找不到,您将立即返回。您的
else块应该在while循环之外。 -
澄清一下,除非您输入的文本位于文件的第一行,否则
else将始终执行。else块应该仅在文本文件中的 none 行与回调消息匹配时执行。 -
我该怎么做?当我将 else 块移出 while 循环时,出现错误。另外,我正在遍历文件中的每一行。谢谢
-
你能给我更多的信息,而不仅仅是“错误”吗?无论如何,请参阅我的回答,它应该开箱即用。
标签: c# if-statement steam