首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IF ELSE中使用我的字符串

在IF ELSE中使用我的字符串
EN

Stack Overflow用户
提问于 2016-10-13 08:36:23
回答 5查看 110关注 0票数 0

我真的是个编码新手,这是我的第一个程序,也是我第一次接触编码软件。

首先让我向你们展示我所拥有的:

代码语言:javascript
复制
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行(createTextWindowedcreateTextFullscreen)是错误的,我想修复它们,但是我是个菜鸟,所以我不知道如何使用我做的字符串,我想让程序写在txt文件中,如果windowed = true (我想你得到了),那么它就写在txt文件中。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-10-13 08:52:24

  1. 您不需要这样做,因为File.WriteAllText无论如何都会截断文件。 使用(var fs = new FileStream(@"Resources\arguments.txt",FileMode.Truncate)) {}
  2. 也移除它,因为它似乎并不是你正在使用它 string text = File.ReadAllText(@"Resources\arguments.txt");
  3. 定义一个字符串变量,根据文本是否加了窗口来设置要写入的文本。 字符串textWrite;if ( == true) { textWrite =“-屏幕-全屏0”+ Environment.NewLine;}Environment.NewLine{ textWrite =“-屏幕1”+ Environment.NewLine;}
  4. 最后,只需在文件中写入文本即可 File.WriteAllText(@Resources\arguments.txt,textWrite);

以下是更改后函数的完整代码:

代码语言:javascript
复制
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);
}
票数 1
EN

Stack Overflow用户

发布于 2016-10-13 08:48:48

您的代码的逻辑顺序需要更改,因此:

代码语言:javascript
复制
    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);

using指令是不必要的,所以您可以删除它。

另外,如果windowed bool不是在此作用域之外使用的,那么它是不必要的,您可以直接在if语句中使用Windowed.IsChecked。这会使代码更清晰一些。

然后,您需要考虑代码的流程和逻辑。所以也许可以在一张纸上画出来,我的理解是:

  1. "Resources\arguments.txt"读取文本
  2. 如果Windowed.IsChecked为真,则向文本中添加参数-screen-fullscreen 0
  3. 否则,如果Windowed.IsChecked为false,则向文本中添加参数-screen-fullscreen 0
  4. 将新文本保存到文件中。

也许回顾一下您的原始代码,记住这些步骤,看看是否可以找到多余的代码。

票数 1
EN

Stack Overflow用户

发布于 2016-10-13 08:43:25

代码语言:javascript
复制
        string createText;

        if (Windowed.IsChecked){
        createText= "-screen-fullscreen 0" + Environment.NewLine;        
        }
        else{
        createText = "-screen-fullscreen 1" + Environment.NewLine;        
    }
File.WriteAllText(@"Resources\arguments.txt", createText);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40016087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档