2013-09-22 103 views
0

我正在嘗試創建一個程序,其中用戶輸入兩個MD5散列,然後單擊一個按鈕以驗證它們是否匹配。我嘗試以下,但它總是返回else如何檢查字符串是否匹配在C#

// I skiped the Initialize Component() block for this post. 

    private void verifyButton1_Click(object sender, EventArgs e) 
    { 
     if (textHash1 == textHash2) 
     { 
      MessageBox.Show("The hashes match"); 
     } 

     else MessageBox.Show("The hashes do not match"); 
    } 

此代碼總是返回else語句

+0

我希望我給需要儘可能多的信息,我是新來的。 –

+0

什麼是'textHash1'和'textHash2'?字符串或文本框? –

+0

你的代碼是正確的,數據不是。請僅發佈與比較相關的代碼(即'string s1 =「abc」; string s2 =「abd」; if(s1 == s2)...')。現在很清楚'textHash1'是什麼類型(最有可能的是'TextBox',這就解釋了爲什麼2TB總是不相等)。 –

回答

4

假設textHash1textHash2是文本框。這是行不通的:

if (textHash1 == textHash2) 

這是因爲你正在比較控件..他們是完全不同的控件(兩個文本框是..但不同的引用)。

要比較他們的Text性質:

if (textHash1.Text == textHash2.Text) 
+0

這是驗證MD5是否匹配或者是否有更好方法的好方法? –

+0

這是一個直線字符串比較。如果散列是大寫還是小寫都沒關係,那麼你可以強制它們上/下並比較..就像這樣:'if(textHash1.Text.ToUpper()== textHash2.Text.ToUpper())'。 –

相關問題