2017-01-24 3 views
-2

Я сравниваю textBox2.text с переменной, называемой «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

make case sensitivety –

ответ

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() для обеспечения любого пробельные очищается и регистр игнорируется. Прежде чем я доберусь до этого, я подтверждаю, что текст действительно присутствует в свойстве .Textcontrol. Если нет, то throw a exception (хотя вы можете просто нажать MessageBox). Существуют более чистые способы сделать это и учитывать различные культурные различия, но это быстрый и грязный способ, который вы обычно видите в офисной среде.

Смежные вопросы