在“:";-甚至不知道该怎么问.这是一个EX
本文关键字:EX 一个 quot 不知道 | 更新日期: 2023-09-27 18:29:58
我有这样的代码,我想通过":"很难解释,所以很难搜索,所以决定在这里问我的第一个问题
if (command == "hi")
{
MessageBox.Show(command);
skype.SendMessage(msg.Sender.Handle, nick + " Says: " + "what");
}
else { }
if (command == "what's up?")
{
MessageBox.Show(command);
skype.SendMessage(msg.Sender.Handle, nick + " Says: " + "nothing much");
}
else { }
现在,我想要上面的是有一个richtextbox排序一次一行,所以对于EX:
hi:what
what's up?:nothing much
有没有可能每一句广告都是新的if语句,而不是将用户限制在一定数量?
编辑:我需要它像这样工作-
消息|响应
你好:怎么了?
当前代码的工作方式是:
//if message "hi"
if (command == "hi")
{
//return this message if message "hi"
skype.SendMessage(msg.Sender.Handle, nick + " Says: " + "what");
}
相反,我想要一个richtextbox来解析":"并使每一行都成为一个新的if语句。
谢谢!
我真的不确定你在要求什么,但我的假设是你想得到一个命令,并知道如何响应该命令。
一种简单的方法是使用Dictionary<string, string>
。
Dictionary<string, string> commandsAndResponses = new Dictionary<string, string>();
commandsAndResponses.Add("hi", "what");
// Add the rest
if (commandsAndResponses.ContainsKey(command))
{
MessageBox.Show(command);
skype.SendMessage(msg.Sender.Handle, nick + " Says: " + commandsAndResponses[command]);
}
更新
如果您从RichTextBox中获得的命令和响应是以":"分隔的字符串列表,则可以使用string.Split()
来构建字典。
我不完全清楚你在问什么,但如果我理解正确,你有一个看起来像"command:some other stuff"
的字符串,你想把这两部分分开。如果我的理解是正确的,那就很容易了:
var originalString = "command:some other stuff";
var parts = originalString.Split(new[] {':'});
var command = parts[0];
看起来并不是真正想要if语句。你可以这样做:
string[] lines = richTextBox1.Text.Split(''n'); // split on line
foreach(string ln in lines)
{
string[] commands = ln.Split(':');
if(commands.Length == 2)
{
// first statement
skype.SendMessage(msg.Sender.Handle, string.Format("{0} Says: {1}",nick, command[0]);
// second statement
skype.SendMessage(msg.Sender.Handle, string.Format("{0} Says: {1}",nick, command[1]);
}
}
这将在文本框中的每一行上循环,然后处理命令的两个部分,如果只有一个":"。是否允许用户在文本中使用":",我将由您决定。