c#保存到txt和data.txt中的新行时出现问题

c#保存到txt和data.txt中的新行时出现问题,c#,newline,saving-data,C#,Newline,Saving Data,我有个问题。我必须将数字保存到txt(它的含义并不重要)。我希望数字之间有空格。 当我尝试在没有空格的情况下保存它时,效果很好 这是我没有空格的代码 if (x_dolny > x1_sqr && x_dolny < x2_sqr) { using (StreamWriter streamW = new StreamWriter("C:\\Users\\Desktop\\outputdata.txt", true)) { streamW.Wr

我有个问题。我必须将数字保存到txt(它的含义并不重要)。我希望数字之间有空格。 当我尝试在没有空格的情况下保存它时,效果很好 这是我没有空格的代码

if (x_dolny > x1_sqr && x_dolny < x2_sqr)
{ 
   using (StreamWriter streamW = new StreamWriter("C:\\Users\\Desktop\\outputdata.txt", true))
   {
      streamW.Write("1");
   }
}
else if (y_prawy < y1_sqr && y_prawy > y2_sqr)
{
   using (StreamWriter streamW = new StreamWriter("C:\\Users\\Desktop\\outputdata.txt", true))
   {
      streamW.Write("1");
   }
}
else if (delta >= 0.0)
{
   using (StreamWriter streamW = new StreamWriter("C:\\Users\\Desktop\\outputdata.txt", true))
   {
      streamW.Write("2");
   }
}
else
{
    using (StreamWriter streamW = new StreamWriter("C:\\Users\\Desktop\\outputdata.txt", true))
      {
         streamW.Write("0");
      }
}
using (StreamWriter streamW = new StreamWriter("C:\\Users\\Desktop\\outputdata.txt", true))
{
   streamW.WriteLine("New line");
}
但是文件看起来像这样

我不明白为什么它会切断我的线路并转到下一条线路。。。
有什么想法吗?

正如@Sinatr在评论中提到的,这可能只是您的文本编辑器中的一个换行问题

不过,这段代码实际上可以进行一些重构,使其更简单、更易于阅读和理解

using (var streamWriter = new StreamWriter(@"C:\Users\Desktop\outputdata.txt", true))
{
    string message = "0";

    if (MessageIs1(x_dolny, x1_sqr, x2_sqr, y_prawy, y1_sqr, y2_sqr))
        message = "1";
    else if (delta >= 0.0)
        message = "2";

    streamWriter.Write(message);
    streamWriter.WriteLine("New line");
}

// ...

private static bool MessageIs1(int x_dolny, int x1_sqr, int x2_sqr, 
                               int y_prawy, int y1_sqr, int y2_sqr)
{
    return (x_dolny > x1_sqr && x_dolny < x2_sqr) 
        || (y_prawy < y1_sqr && y_prawy > y2_sqr);
}
使用(var streamWriter=newstreamwriter(@“C:\Users\Desktop\outputdata.txt”,true))
{
字符串消息=“0”;
如果(消息是1(x_-dolny,x1_-sqr,x2_-sqr,y_-prawy,y1_-sqr,y2_-sqr))
message=“1”;
否则如果(增量>=0.0)
message=“2”;
streamWriter.Write(消息);
streamWriter.WriteLine(“新线”);
}
// ...
私有静态bool消息是1(int x_dolny,int x1_sqr,int x2_sqr,
内部y_prawy、内部y1_sqr、内部y2_sqr)
{
返回(x_-dolny>x1_-sqr&&x_-dolnyy2_sqr);
}
以下是一些建议:

  • if
    语句的每个分支中,甚至在之后,都重用了
    StreamWriter
    。不要使用语句多次键入
    ,而是使用
    语句将其全部打包成一个
    。试着遵循规则(不要重复你自己)

  • 当数据类型从赋值中明显可见时(例如创建
    新的
    对象),可以使用
    var

  • 尽量使您的标识符(变量名和方法名)尽可能清晰简洁。其他阅读你的代码的人不必四处查看,以了解你的变量或方法在做什么;从名字上看应该很明显。避免使用缩写,因为其他人可能不知道缩写代表什么,或者可能认为它意味着其他东西。我不知道你的变量是什么,因为我看不到完整的源代码,但我肯定会从上面的例子中重命名以下内容:
    x_-dolny
    x1_-sqr
    x2_-sqr
    y-prawy
    y1_-sqr
    y2_-sqr
    MessageIs1

  • 将复杂的布尔逻辑提取到方法中,以便在您或其他人以后需要时更易于阅读和更改

  • 用于文件路径

  • 尽可能地坚持(保持简单,愚蠢)。大多数开发人员都超过了工程师。简单的代码易于阅读、理解、维护和扩展


  • 正如@Sinatr在评论中提到的,这可能只是文本编辑器中的一个换行问题

    不过,这段代码实际上可以进行一些重构,使其更简单、更易于阅读和理解

    using (var streamWriter = new StreamWriter(@"C:\Users\Desktop\outputdata.txt", true))
    {
        string message = "0";
    
        if (MessageIs1(x_dolny, x1_sqr, x2_sqr, y_prawy, y1_sqr, y2_sqr))
            message = "1";
        else if (delta >= 0.0)
            message = "2";
    
        streamWriter.Write(message);
        streamWriter.WriteLine("New line");
    }
    
    // ...
    
    private static bool MessageIs1(int x_dolny, int x1_sqr, int x2_sqr, 
                                   int y_prawy, int y1_sqr, int y2_sqr)
    {
        return (x_dolny > x1_sqr && x_dolny < x2_sqr) 
            || (y_prawy < y1_sqr && y_prawy > y2_sqr);
    }
    
    使用(var streamWriter=newstreamwriter(@“C:\Users\Desktop\outputdata.txt”,true))
    {
    字符串消息=“0”;
    如果(消息是1(x_-dolny,x1_-sqr,x2_-sqr,y_-prawy,y1_-sqr,y2_-sqr))
    message=“1”;
    否则如果(增量>=0.0)
    message=“2”;
    streamWriter.Write(消息);
    streamWriter.WriteLine(“新线”);
    }
    // ...
    私有静态bool消息是1(int x_dolny,int x1_sqr,int x2_sqr,
    内部y_prawy、内部y1_sqr、内部y2_sqr)
    {
    返回(x_-dolny>x1_-sqr&&x_-dolnyy2_sqr);
    }
    
    以下是一些建议:

  • if
    语句的每个分支中,甚至在之后,都重用了
    StreamWriter
    。不要使用
    语句多次键入
    ,而是使用
    语句将其全部打包成一个
    。试着遵循规则(不要重复你自己)

  • 当数据类型从赋值中明显可见时(例如创建
    新的
    对象),可以使用
    var

  • 尽量使您的标识符(变量名和方法名)尽可能清晰简洁。其他阅读你的代码的人不必四处查看,以了解你的变量或方法在做什么;从名字上看应该很明显。避免使用缩写,因为其他人可能不知道缩写代表什么,或者可能认为它意味着其他东西。我不知道你的变量是什么,因为我看不到完整的源代码,但我肯定会从上面的例子中重命名以下内容:
    x_-dolny
    x1_-sqr
    x2_-sqr
    y-prawy
    y1_-sqr
    y2_-sqr
    MessageIs1

  • 将复杂的布尔逻辑提取到方法中,以便在您或其他人以后需要时更易于阅读和更改

  • 用于文件路径

  • 尽可能地坚持(保持简单,愚蠢)。大多数开发人员都超过了工程师。简单的代码易于阅读、理解、维护和扩展


  • 记事本菜单-格式-文字换行。。是否已选中?您还可以通过尝试展开记事本窗口来验证它是否为自动换行。如果是换行,当窗口变大时,文本将四处移动,直到窗口足够长,可以放在一行上。记事本菜单-格式-换行。。是否已选中?您还可以通过尝试展开记事本窗口来验证它是否为自动换行。如果是换行,随着窗口变大,文本将四处移动,直到窗口足够长,可以在一行上。