2014-02-11 19 views
1

我正在使用一些if ... else條件來檢查C#中文本框中的某些更改。這是代碼。只有在有任何更改時才重新啓動應用程序

private void button1_Click(object sender, EventArgs e) 
{ 
    if (txtUsername.Text != UsernameS) 
    { 
     string json = File.ReadAllText("settings.json"); 
     dynamic jsonObj = JsonConvert.DeserializeObject(json); 
     jsonObj["Bots"][0]["Username"] = txtUsername.Text; 
     string output = JsonConvert.SerializeObject(jsonObj, Formatting.Indented); 
     File.WriteAllText("settings.json", output); 

    } 
    if (txtPassword.Text != PasswordS) 
    { 
     string json = File.ReadAllText("settings.json"); 
     dynamic jsonObj = JsonConvert.DeserializeObject(json); 
     jsonObj["Bots"][0]["Password"] = txtPassword.Text; 
     string output = JsonConvert.SerializeObject(jsonObj, Formatting.Indented); 
     File.WriteAllText("settings.json", output); 

    } 
    var filename = System.Reflection.Assembly.GetExecutingAssembly().Location; 
    System.Diagnostics.Process.Start(filename); 

    // Closes the current process 
    Environment.Exit(0); 
} 

好了,現在我想要做的是,我不希望它如果沒有變化重新啓動。儘管我也想同時修復所有更改。也就是說,經歷所有條件,然後重新啓動。使用我當前的代碼,即使沒有任何更改,應用程序也會重新啓動。請幫助:)

+0

使用局部變量,調用它,嗯,「變化」或其他。默認情況下它是'false',如果你進入條件內部,那麼它變成'true',最後檢查它,如果它是真的,然後保存更改並退出。問題是什麼?順便說一句,使閱讀常見(即在任何情況下發生),重複行不好,你會閱讀整個設置兩次,如果兩個文本框已更改值。 – Sinatr

回答

1

您可以使用||檢查是否有任何更改。運營商。如果任何這些條件返回true,您的代碼將執行。

private void button1_Click(object sender, EventArgs e) 
{ 
    if (txtUsername.Text != UsernameS) 
    { 
     string json = File.ReadAllText("settings.json"); 
     dynamic jsonObj = JsonConvert.DeserializeObject(json); 
     jsonObj["Bots"][0]["Username"] = txtUsername.Text; 
     string output = JsonConvert.SerializeObject(jsonObj, Formatting.Indented); 
     File.WriteAllText("settings.json", output); 

    } 
    if (txtPassword.Text != PasswordS) 
    { 
     string json = File.ReadAllText("settings.json"); 
     dynamic jsonObj = JsonConvert.DeserializeObject(json); 
     jsonObj["Bots"][0]["Password"] = txtPassword.Text; 
     string output = JsonConvert.SerializeObject(jsonObj, Formatting.Indented); 
     File.WriteAllText("settings.json", output); 

    } 
    if(txtUsername.Text != UsernameS || txtPassword.Text != PasswordS) 
    { 
     var filename = System.Reflection.Assembly.GetExecutingAssembly().Location; 
     System.Diagnostics.Process.Start(filename); 

     // Closes the current process 
     Environment.Exit(0); 
    } 
} 
+0

謝謝。工作。 – Bone

相關問題