C# 在IF-ELSE中使用我的字符串
我真的是个编码高手这是我的第一个程序,也是我第一次接触编码软件。 首先,让我向您展示我拥有的:C# 在IF-ELSE中使用我的字符串,c#,wpf,string,if-statement,C#,Wpf,String,If Statement,我真的是个编码高手这是我的第一个程序,也是我第一次接触编码软件。 首先,让我向您展示我拥有的: private void SaveClose_Click(object sender, RoutedEventArgs e) { using (var fs = new FileStream(@"Resources\arguments.txt", FileMode.Truncate)) { } if (Windowed.IsChecked == true)
private void SaveClose_Click(object sender, RoutedEventArgs e)
{
using (var fs = new FileStream(@"Resources\arguments.txt", FileMode.Truncate))
{
}
if (Windowed.IsChecked == true)
windowed = true;
else
windowed = false;
string text = File.ReadAllText(@"Resources\arguments.txt");
string createTextWindowed = "-screen-fullscreen 0" + Environment.NewLine;
File.WriteAllText(@"Resources\arguments.txt", createTextWindowed);
string createTextFullscreen = "-screen-fullscreen 1" + Environment.NewLine;
File.WriteAllText(@"Resources\arguments.txt", createTextFullscreen);
if (windowed == true)
createTextWindowed
else
createTextFullscreen
}
第21行和第23行(createTextWindowed
和createTextFullscreen
)是错误,我想修复它们,但我是个笨蛋,所以我不知道如何使用我制作的字符串,如果windowed=true(我想你知道了),我想让程序写入txt文件“-screen fullscreen 0”,如果windowed=true(我想你知道了),如果windowed=false,则写入1,我试过这个,但当然不行:)试试这个
private void SaveClose_Click(object sender, RoutedEventArgs e)
{
string text = File.ReadAllText(@"Resources\arguments.txt");
string createTextWindowed = "-screen-fullscreen 0" + Environment.NewLine;
string createTextFullscreen = "-screen-fullscreen 1" + Environment.NewLine;
if (Windowed.IsChecked == true)
{
File.WriteAllText(@"Resources\arguments.txt", createTextWindowed);
}
else
{
File.WriteAllText(@"Resources\arguments.txt", createTextFullscreen);
}
}
试试这个
private void SaveClose_Click(object sender, RoutedEventArgs e)
{
string text = File.ReadAllText(@"Resources\arguments.txt");
string createTextWindowed = "-screen-fullscreen 0" + Environment.NewLine;
string createTextFullscreen = "-screen-fullscreen 1" + Environment.NewLine;
if (Windowed.IsChecked == true)
{
File.WriteAllText(@"Resources\arguments.txt", createTextWindowed);
}
else
{
File.WriteAllText(@"Resources\arguments.txt", createTextFullscreen);
}
}
您只需稍微更改一下最终逻辑:
if (windowed == true)
{
string createTextWindowed = "-screen-fullscreen 0" + Environment.NewLine;
File.WriteAllText(@"Resources\arguments.txt", createTextWindowed);
}
else
{
string createTextFullscreen = "-screen-fullscreen 1" + Environment.NewLine;
File.WriteAllText(@"Resources\arguments.txt", createTextFullscreen);
}
然后在末尾取消检查您只需要稍微更改一下最终逻辑:
if (windowed == true)
{
string createTextWindowed = "-screen-fullscreen 0" + Environment.NewLine;
File.WriteAllText(@"Resources\arguments.txt", createTextWindowed);
}
else
{
string createTextFullscreen = "-screen-fullscreen 1" + Environment.NewLine;
File.WriteAllText(@"Resources\arguments.txt", createTextFullscreen);
}
然后在结尾处取消勾选代码的逻辑顺序需要更改,因此:
string text = File.ReadAllText(@"Resources\arguments.txt");
if (Windowed.IsChecked)
{
text = text + "-screen-fullscreen 0" + Environment.NewLine;
}
else
{
text = text + "-screen-fullscreen 1" + Environment.NewLine;
}
File.WriteAllText(@"Resources\arguments.txt", text);
不需要使用指令,因此可以删除该指令
另外,如果未在此范围之外使用windowed
bool,则不需要它,您可以直接使用if语句中的windowed.IsChecked。这会稍微整理一下代码
然后你需要考虑代码的流程和逻辑。也许在一张纸上画出来,我的理解是:
阅读“Resources\arguments.txt”
如果Windowed.IsChecked
为true,则将参数-全屏0
添加到文本中
否则,如果Windowed.IsChecked
为false,则将参数-全屏0
添加到文本中
将新文本保存到文件中
也许回顾一下您的原始代码时会记住以下步骤,看看您是否能够发现冗余代码。您的代码的逻辑顺序需要更改,因此:
string text = File.ReadAllText(@"Resources\arguments.txt");
if (Windowed.IsChecked)
{
text = text + "-screen-fullscreen 0" + Environment.NewLine;
}
else
{
text = text + "-screen-fullscreen 1" + Environment.NewLine;
}
File.WriteAllText(@"Resources\arguments.txt", text);
不需要使用
指令,因此可以删除该指令
另外,如果未在此范围之外使用windowed
bool,则不需要它,您可以直接使用if语句中的windowed.IsChecked。这会稍微整理一下代码
然后你需要考虑代码的流程和逻辑。也许在一张纸上画出来,我的理解是:
阅读“Resources\arguments.txt”
如果Windowed.IsChecked
为true,则将参数-全屏0
添加到文本中
否则,如果Windowed.IsChecked
为false,则将参数-全屏0
添加到文本中
将新文本保存到文件中
也许回顾一下您的原始代码,记住这些步骤,看看您是否能够发现冗余代码
您不需要这样做,因为File.writealText无论如何都会截断文件
using (var fs = new FileStream(@"Resources\arguments.txt", FileMode.Truncate))
{
}
删除这个,因为它似乎没有你正在使用它
string text = File.ReadAllText(@"Resources\arguments.txt");
定义一个字符串变量,根据是否打开窗口来设置要写入的文本
string textWrite;
if (windowed == true)
{
textWrite = "-screen-fullscreen 0" + Environment.NewLine;
}
else
{
textWrite = "-screen-fullscreen 1" + Environment.NewLine;
}
最后,把文本写在文件里
File.WriteAllText(@"Resources\arguments.txt", textWrite);
以下是更改后函数的完整代码:
private void SaveClose_Click(object sender, RoutedEventArgs e)
{
if (Windowed.IsChecked == true)
windowed = true;
else
windowed = false;
string textWrite;
if (windowed == true)
{
textWrite = "-screen-fullscreen 0" + Environment.NewLine;
}
else
{
textWrite = "-screen-fullscreen 1" + Environment.NewLine;
}
File.WriteAllText(@"Resources\arguments.txt", textWrite);
}
您不需要这样做,因为File.writealText无论如何都会截断文件
using (var fs = new FileStream(@"Resources\arguments.txt", FileMode.Truncate))
{
}
删除这个,因为它似乎没有你正在使用它
string text = File.ReadAllText(@"Resources\arguments.txt");
定义一个字符串变量,根据是否打开窗口来设置要写入的文本
string textWrite;
if (windowed == true)
{
textWrite = "-screen-fullscreen 0" + Environment.NewLine;
}
else
{
textWrite = "-screen-fullscreen 1" + Environment.NewLine;
}
最后,把文本写在文件里
File.WriteAllText(@"Resources\arguments.txt", textWrite);
以下是更改后函数的完整代码:
private void SaveClose_Click(object sender, RoutedEventArgs e)
{
if (Windowed.IsChecked == true)
windowed = true;
else
windowed = false;
string textWrite;
if (windowed == true)
{
textWrite = "-screen-fullscreen 0" + Environment.NewLine;
}
else
{
textWrite = "-screen-fullscreen 1" + Environment.NewLine;
}
File.WriteAllText(@"Resources\arguments.txt", textWrite);
}
@这就是你想做的吗?我修改了你的代码,使之更加完善simple@mbadeveloper为什么你需要FileStream
你正在使用File.writealText
Mostafiz你是真的我删除了文件stream@Francefire请使用新的代码我现在完全糊涂了,当我想尝试它时,它说我的txt文件被另一个进程使用,但没有。。。它在另一个窗口(主窗口)中向我显示了一行,但这行应该只在我单击button@Francefire我不知道你为什么需要阅读第一条语句中的文件?如果您只想将文本写入文件并丢失文件内容,因为这对您不重要,请删除第一行字符串text=file.ReadAllText(@“Resources\arguments.txt”)@这就是你想做的吗?我修改了你的代码,使之更加完善simple@mbadeveloper为什么你需要FileStream
你正在使用File.writealText
Mostafiz你是真的我删除了文件stream@Francefire请使用新的代码我现在完全糊涂了,当我想尝试它时,它说我的txt文件被另一个进程使用,但没有。。。它在另一个窗口(主窗口)中向我显示了一行,但这行应该只在我单击button@Francefire我不知道你为什么需要阅读第一条语句中的文件?如果您只想将文本写入文件并丢失文件内容,因为这对您不重要,请删除第一行字符串text=file.ReadAllText(@“Resources\arguments.txt”);他们似乎想在“Resources\arguments.txt”文件中预先存在的文本中添加一个参数?如果没有确认,很难确定。我认为这是从另一个答案复制粘贴的错误,因为我不知道Filemode.Truncate实际上做了什么。尸体甚至不在使用指令中。然而,你确实提出了一个很好的观点。我们需要拭目以待。但现在我有一个问题,我必须把“argument.txt”的完整目录(C:\Users\baske\Desktop\Launcher\WpfApplication2\WpfApplication2\Resources\arguments.txt)放在不同的计算机上,但将来我希望该程序可以运行在不同的计算机上,我知道不是每个人都有和我一样的启动器(和游戏)目录,你能帮我吗?当我把@“Ressources\arguments.txt”
放进去时,它不起作用,它没有编辑txtfile@Francefire看一看,我真的是个傻瓜,我不知道该把它们放在哪里,我试着用System.AppDoma