我正在调整我在这里找到的一些代码:http://nicholas.piasecki.name/blog/2009/03/sending-raw-epl2-directly-to-a-zebra-lp2844-via-c/#comment-1636,但在VS 2003 / .NET 1.1中,StringBuilder的AppendLine方法无法识别,因此我将其截断为.Append。
现在我需要在每次调用Append之后添加#13#10左右 - 我假设这是AppendLine自动执行的操作。
答案 0 :(得分:8)
是
AppendLine()
会追加其论点,然后是Environment.Newline
如果您不致电AppendLine()
,则需要自行添加换行符。
答案 1 :(得分:2)
是。但要小心将其视为CRLF - internally StringBuilder uses Environment.Newline所以值得使用Environment.NewLine来实现交叉兼容性。
[System.Runtime.InteropServices.ComVisible(false)]
public StringBuilder AppendLine() {
Contract.Ensures(Contract.Result<stringbuilder>() != null);
return Append(Environment.NewLine);
}
[System.Runtime.InteropServices.ComVisible(false)]
public StringBuilder AppendLine(string value) {
Contract.Ensures(Contract.Result<stringbuilder>() != null);
Append(value);
return Append(Environment.NewLine);
}
编辑:除非您因硬件而特别需要使用CRLF,否则我猜。
答案 2 :(得分:1)
StringBuilder.AppendLine
/// <summary>
/// Appends the default line terminator to the end of the current <see cref="T:System.Text.StringBuilder"/> object.
///
/// </summary>
///
/// <returns>
/// A reference to this instance after the append operation has completed.
///
/// </returns>
/// <exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
/// </exception><filterpriority>1</filterpriority>
[ComVisible(false)]
[__DynamicallyInvokable]
public StringBuilder AppendLine()
{
return this.Append(Environment.NewLine);
}