2017-01-24 166 views
-2

我將textBox2.text與名爲'word'的變量進行比較,word包含來自txt文件的隨機單詞。用戶需要通過將該單詞放置在textBox2中來猜測單詞,並且如果用戶正確,則MessageBox出現以顯示他贏了。將textbox.Text與變量進行比較

我寫的代碼不會顯示任何錯誤,對我來說似乎很好,也許他們以某種其他方式來執行此應用程序。

string word; // variable for random word generated 
word = RandomWord(); // Calling random word generator method 

private void button2_Click(object sender, EventArgs e) 
    { 

     if (textBox2.Text == word) 
     { 
      label4.Text = "You Won"; 
      MessageBox.Show("You Guessed The Word = " + (word), "You won"); 
     } 
     else 
     { 
      DoesNotMatch(); 

     } 
    } 
+0

我忘了提及寫的代碼不起作用 –

+2

說明「不起作用」。怎麼了?另外,請編輯你的問題,如此類的細節,不要發表評論。 –

+1

確保區分大小寫 –

回答

1

首先,修復你的格式,就像我在這個答案中做的那樣。然後,有些事情要記住關於字符串:

  1. 它們是nullable類型。
  2. 即使是不同情況的一個字符也會打破平等。
  3. 任何空白(包括尾隨空格/填充)都可能會打破平等。

    string word; // variable for random word generated word = RandomWord(); 
    // Calling random word generator method 
    private void button2_Click(object sender, EventArgs e) {  
        if(textBox2.Text != null && textBox2.Text.Trim() != string.Empty) 
         { 
          if (textBox2.Text.Trim().ToLower() == word.Trim().ToLower()) 
          { 
           label4.Text = "You Won"; 
           MessageBox.Show("You Guessed The Word = " + (word), "You won"); 
          } 
          else 
          { 
           DoesNotMatch();  
          } 
         } else { throw new ApplicationException("Invalid entry, please try again.");} 
        } 
    

考慮到這些問題,我申請string.Trim().Lower()確保任何空格被清理和案件被忽略。在我得到這些之前,我確認文本實際上存在於 control的屬性中。如果不是,我們throwexception(雖然你可能只想彈出一個MessageBox)。有更清晰的方法可以做到這一點,並解決各種文化差異,但這是您在辦公室環境中通常會看到的快速,骯髒的方式。

相關問題