如果不打电话。c#

如果不打电话。c#,c#,if-statement,C#,If Statement,可能重复: 我有一个密码: 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(mcS

可能重复:

我有一个密码:

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!");
}

我输入了错误的密码,但没有打开messagebox

只需设置一个断点,检查代码并检查
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()

添加调试语句以检查
responseFromServer
是什么:
系统诊断.debug.WriteLine(responseFromServer)然后你可以检查你的else-if语句是否正确。你确定回答正确吗?可能服务器没有响应
“错误登录”
“旧版本”
。请尝试调试该代码。那么,会发生什么情况,服务器的响应是什么?是的,responseFromServer=“错误登录”确定。我输入了错误的密码并按下了按钮。我看到带有文本“无法登录,未知响应:错误登录”的消息框“我补充了一个解决问题的建议
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];