Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
混淆C#字符的特殊含义_C# - Fatal编程技术网

混淆C#字符的特殊含义

混淆C#字符的特殊含义,c#,C#,我是C#编程的新手,我不明白角色转义是如何工作的。我尝试了很多,但只有“\t”可以正常工作。 我的代码的一个示例: textBox1.Text = "asd"; textBox1.Text = textBox1.Text + '\n'; textBox1.Text = textBox1.Text + "asd"; 多行是启用的,但我的输出只是“asdasd”,没有中断行。 我希望你们中的一些人知道答案是什么 您需要在Windows控件中使用“\r

我是C#编程的新手,我不明白角色转义是如何工作的。我尝试了很多,但只有“\t”可以正常工作。 我的代码的一个示例:

        textBox1.Text = "asd";
        textBox1.Text = textBox1.Text + '\n';
        textBox1.Text = textBox1.Text + "asd";
多行是启用的,但我的输出只是“asdasd”,没有中断行。 我希望你们中的一些人知道答案是什么

您需要在Windows控件中使用
“\r\n”
,因为这是Windows的正常换行组合。(换行符是各地程序员的祸根。不同的操作系统使用不同的字符序列作为“典型”换行符。)

“\r\n”
是两个字符:
\r
用于回车(U+000D)和
\n
用于换行(U+000A)。不过,您不需要在三个语句中完成:

textBox1.Text = "First line\r\nSecond line";

现在,我特意选择了
\r\n
而不是
Environment.NewLine
,理由是如果您使用的是
System.Windows.Forms
,这些将是面向Windows的控件。我不清楚Windows窗体的实现在Mac或Linux上会做什么,因为在Mac或Linux上,正常的换行是不同的。(为了简单起见,我猜想一个实用的实现将在
\r
\n
\r\n
中的任何一个上中断,就像
文本阅读器
一样。)


有时-例如,如果您在同一台机器上编写一个文本文件供使用-最好使用
Environment.NewLine

有时候,比如当你在实现一个网络协议,比如HTTP协议,它要求一个特定的换行格式时,最好明确地说明这一点

有时——比如在这种情况下——只是不清楚。然而,它总是值得思考的

要获得C#中转义序列的完整列表,您可以查看C#语言规范(总是很有趣!),或者查看包含该信息和更多信息的my。

您需要
“\r\n”
在Windows控件中使用换行符,因为这是Windows的正常换行组合。(换行符是各地程序员的祸根。不同的操作系统使用不同的字符序列作为“典型”换行符。)

“\r\n”
是两个字符:
\r
用于回车(U+000D)和
\n
用于换行(U+000A)。不过,您不需要在三个语句中完成:

textBox1.Text = "First line\r\nSecond line";

现在,我特意选择了
\r\n
而不是
Environment.NewLine
,理由是如果您使用的是
System.Windows.Forms
,这些将是面向Windows的控件。我不清楚Windows窗体的实现在Mac或Linux上会做什么,因为在Mac或Linux上,正常的换行是不同的。(为了简单起见,我猜想一个实用的实现将在
\r
\n
\r\n
中的任何一个上中断,就像
文本阅读器
一样。)


有时-例如,如果您在同一台机器上编写一个文本文件供使用-最好使用
Environment.NewLine

有时候,比如当你在实现一个网络协议,比如HTTP协议,它要求一个特定的换行格式时,最好明确地说明这一点

有时——比如在这种情况下——只是不清楚。然而,它总是值得思考的


要获得C#中转义序列的完整列表,您可以查看C#语言规范(总是很有趣!)或查看包含该信息和更多信息的my。

在C#中插入换行符的最清晰方式是:

此代码段将
textBox1
文本设置为“
asd
”,然后向其添加新行,然后在第二行再次添加“
asd

您感到困惑的特殊字符是计算机使用电传打印机进行所有输出时产生的伪影。电传打印机比数字显示器早几年

  • \n指示打印机(输出)将打印头向下移动一行(新行)
  • \r指示打印机(输出)将打印头移回行的开头(回车)
综合起来,这导致打印头被定位在下一行的开头,准备输出到干净的纸张上


可以轻松地在互联网上查找更多信息,包括

等地方。在C#中插入换行符的最清晰方式是:

此代码段将
textBox1
文本设置为“
asd
”,然后向其添加新行,然后在第二行再次添加“
asd

您感到困惑的特殊字符是计算机使用电传打印机进行所有输出时产生的伪影。电传打印机比数字显示器早几年

  • \n指示打印机(输出)将打印头向下移动一行(新行)
  • \r指示打印机(输出)将打印头移回行的开头(回车)
综合起来,这导致打印头被定位在下一行的开头,准备输出到干净的纸张上


您可以轻松地在internet上查找更多信息,包括

Environment.NewLine
?您需要textBox1.Text+='\n';添加到现有内容中。@JBrooks:No,使用
textBox1.Text=textBox1.Text+'\n'
还可以添加内容。可能是输入错误,但您希望在示例代码的第二行中使用双引号,而不是单引号。@DougDawson:为什么?两者将做完全相同的事情。当然,OP需要对
“\r\n”
使用双引号,因为这是两个字符,但是
string
char
之间的串联工作正常。
Environment.NewLine
?您需要textBox1.Text+='\n';添加到现有内容中。@JBrooks:No,使用
textBox1.Text=textBox1.Text+'\n'<