2016-10-04 207 views
-6

(一切都在C#中製作) loggedIn變量在MainWindow類中不會變爲truelabel會改變,但變量不會。 我該如何解決這個問題?謝謝你幫助我!C#變量不會改變?

MainWindow game = new MainWindow(); 

if(!game.loggedIn) 
{ 
if (tbxUsername.Text != "" && tbxPassword.Text != "") 
    { 
     if(System.IO.File.Exists(System.AppDomain.CurrentDomain.BaseDirectory + "Passwords\\" + tbxUsername.Text + ".txt")) 
     { 
      if(System.IO.File.ReadAllText(System.AppDomain.CurrentDomain.BaseDirectory + "Passwords\\" + tbxUsername.Text + ".txt") == tbxPassword.Text) 
      { 
       game.loggedIn = true; 
       game.username = tbxUsername.Text; 
       game.password = tbxPassword.Text; 
       lblMessage.Content = "U bent ingelogd als " + game.username + "!"; 
       tbxUsername.Text = ""; 
       tbxPassword.Text = ""; 
      } 
      else 
      { 
       lblMessage.Content = "U heeft een verkeerd password ingegeven!"; 
       tbxUsername.Text = ""; 
       tbxPassword.Text = ""; 
      } 
     } 
     else 
     { 
      lblMessage.Content = "Deze username bestaat niet!"; 
      tbxUsername.Text = ""; 
      tbxPassword.Text = ""; 
     } 
    } 
    else 
    { 
     lblMessage.Content = "U heeft geen password/username ingegeven!"; 
     tbxUsername.Text = ""; 
     tbxPassword.Text = ""; 
    } 
} 
else 
{ 
    lblMessage.Content = "U bent al ingelogd!"; 
} 

}

+0

你是什麼意思了新MainWindow每次初始化通過*不會改變*?你有沒有嘗試調試代碼?你有錯誤嗎? –

+2

我希望這不是生產代碼。可怕的方式來應對密碼... – jeroenh

+2

調試代碼。我們不知道你的輸入是什麼。逐行瀏覽每一行,並檢查實際值與您的期望值。 – Jonesopolis

回答

-2

不要讓代碼更廣泛的範圍,但我敢肯定,問題是,你這個函數被調用

+0

感謝回答如此之快!我還有一個問題,如何在不初始化新的MainWindow的情況下更改另一個類的變量? 感謝您的幫助! – OPsteffOP

+4

我會推薦或建議你做一些閱讀和或學習一些C#基礎知識,我們不在這裏寫你的代碼你的@OPsteffOP可怕的方法在檢查密碼方面 – MethodMan

+0

@OPsteffOP - 我同意MethodMan關於閱讀和學習在發佈問題之前更多。但如果已經在這裏,那麼可能是一個開始的地方,因爲變量的範圍是:[this](https://msdn.microsoft.com/en-us/library/ms973875.aspx)和[this](https:/ /msdn.microsoft.com/en-us/library/aa691132(v=vs.71).aspx) –