我在C#中有一个旧应用程序,并使用StringBuilder.AppendLine
添加带有字符串的行,然后计算该字符串的校验和。
到目前为止,它始终在Windows桌面/ Windows CE上运行,因此行结尾始终为\r\n
。
现在,我需要使其在linux / mono上完全相同。但是随后AppendLine
仅添加了\n
而不是\r\n
。
所以我必须像在Windows上一样将相同的行结尾添加到stringbuilder。但是如何?
s.Append("\r\n");
似乎没有用。
s.Append(13);
s.Append(10);
也不做这项工作。
答案 0 :(得分:0)
您无法更改StringBuilder
使用的值。 source使用Environment.NewLine
,在Linux系统上将为\n
。没有过载。您将必须实现自己的方法,或者像s.Append("13\r\n");
[System.Runtime.InteropServices.ComVisible(false)]
public StringBuilder AppendLine(string value) {
Contract.Ensures(Contract.Result<StringBuilder>() != null);
Append(value);
return Append(Environment.NewLine);
}
答案 1 :(得分:-1)
const string LineEnd = "\r\n";
s.Append(LineEnd);
也在unix / linux上以Windows样式添加行尾。