2012-11-05 52 views
-2

可能重複:
incorrectly checks the response c#如果沒有調用。 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!"); 
} 

我輸入了錯誤的密碼,但不打開消息框

+0

添加一個調試語句來檢查'responseFromServer'是什麼:'System.Diagnostics.Debug.WriteLine(responseFromServer);'然後你可以檢查你的if語句是否好。 – SynerCoder

+0

你確定答覆嗎?可能服務器沒有響應''Bad login''或者'Old Version'',請嘗試調試那個代碼 – ragatskynet

+0

那麼,會發生什麼,服務器的響應是什麼? – Jodrell

回答

0

可能是您的響應來自服務器與您正在檢查的值(錯誤登錄和舊版本)不匹配。
嘗試添加另一個其他如果序列的末端,看你有什麼。

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()

+0

好的,我寫了錯誤的密碼,然後按下按鈕,我看到帶有文字「無法登錄,未知響應:錯誤登錄」的消息框 – user1798736

+0

我添加了一條關於如何解決問題的建議 –

0

只需設置一個BreakingPoint的,通過代碼和檢查responseFromServer價值在這兩種情況下複製這些內容並在代碼中進行比較,我注意到在「Bad Login」之前第一個代碼部分中有空格,但是我不確定它的原因。

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]; 
相關問題