C# 仅当有任何更改时才重新启动应用程序

C# 仅当有任何更改时才重新启动应用程序,c#,C#,我使用一些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(

我使用一些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);
}

好的,现在我想做的是,如果没有更改,我不希望它重新启动。虽然我也想同时修复所有更改。。也就是说,检查所有if条件,然后重新启动。使用我当前的代码,即使没有任何更改,应用程序也会重新启动。请帮助:)

您可以使用| |运算符检查其中任何一个是否有更改。如果这些条件中的任何一个返回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);
    }
}

使用局部变量,称之为,嗯,
changes
或其他。默认情况下,它是
false
,如果进入条件内部,则它将变为
true
,最后检查它,如果它为true,则保存更改并退出。有什么问题?顺便说一句,如果两个文本框都改变了值,那么让阅读变得普通(即,在任何情况下都会发生),有重复的行是不好的,并且您将阅读整个设置两次。