-2

可能重复:
错误地检查响应 c#

我有一个代码:

Match match = regex.Match(responseFromServer);
if (match.Success)
{
    var input = responseFromServer;
    var split = input.Split(':');
    var final = split[3];
    ProcessStartInfo mcStartInfo = new Shitocode;
    Process.Start(mcStartInfo);
    this.Close();
}
else if (responseFromServer == " Bad Login")
{
    MessageBox.Show("Uncorrect login/password!");
}
else if (responseFromServer == " Old version")
{
    MessageBox.Show("Launcher is old!");
}

为什么最后两次检查没有显示消息框?

我试图以不同的方式做事:

if (match.Success)
{
    var input = responseFromServer;
    var split = input.Split(':');
    var final = split[3];
    ProcessStartInfo mcStartInfo = new Shitocode;
    Process.Start(mcStartInfo);
    this.Close();
}
else if (responseFromServer.Equals("Bad Login"))
{
    MessageBox.Show("Uncorrect login/password!");
}
else if (responseFromServer.Equals("Old Version"))
{
    MessageBox.Show("Launcher is old!");
}

我输入了错误的密码,但没有打开消息框

4

3 回答 3

1
string s = instxtbox.Text;
        string[] s1 = new string[3];
        s1[0] = " ";
        s1[1] = " ";
        s1[2] = " ";

        string[] portion = s.Split(s1, StringSplitOptions.RemoveEmptyEntries);
        int val = Convert.ToInt32(portion[2]);

        string reg = portion[1];



        if (reg == "ax")
            axtxtbox.Text = portion[2];

        else if (reg == "bx")
            bxtxtbox.Text = portion[2];
        else if (reg == "cx")
            cxtxtbox.Text = portion[2];
        else if (reg == "dx")
            dxtxtbox.Text = portion[2];
于 2012-11-05T10:01:19.767 回答
0

只需设置一个断点,检查代码并responseFromServer在两种情况下检查 Copy this 的值并在您的代码中进行比较,我注意到您在“Bad Login”之前的第一个代码部分中有空格,但我不确定它的原因反正。

于 2012-11-05T09:48:56.760 回答
0

可能您的responseFromServer与您检查的值不匹配(登录错误和旧版本)。
尝试在if序列的末尾添加另一个else ,看看你有什么。

if (match.Success)
{
   //your code
}
else if (responseFromServer.Equals("Bad Login"))
{
    MessageBox.Show("Uncorrect login/password!");
}
else if (responseFromServer.Equals("Old Version"))
{
    MessageBox.Show("Launcher is old!");
}
else
{
    MessageBox.Show("Cannot login, unknown response: " + responseFromServer)
}

评论后编辑

如果您没有确切的消息,但您知道它必须包含一些确切的字符串,您可以将两者更改responseFromServer.Equals()responseFromServer.Contains()

于 2012-11-05T09:49:56.397 回答