C# 仅当有任何更改时才重新启动应用程序
我使用一些if…else条件来检查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(
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,则保存更改并退出。有什么问题?顺便说一句,如果两个文本框都改变了值,那么让阅读变得普通(即,在任何情况下都会发生),有重复的行是不好的,并且您将阅读整个设置两次。