当我使用StringBuilder.Append而不是.AppendLine时,是否需要添加额外的.Append(crl
本文关键字:Append 添加 是否 crl StringBuilder AppendLine | 更新日期: 2023-09-27 17:58:06
我正在调整我在这里找到的一些代码:http://nicholas.piasecki.name/blog/2009/03/sending-raw-epl2-directly-to-a-zebra-lp2844-via-c/#comment-1636,但在VS2003/.NET1.1中,StringBuilder的AppendLine方法无法识别,所以我将其截断为.Append.
我现在需要在每次调用Append后添加#13#10左右吗?我假设这是AppendLine自动完成的。
是。
AppendLine()
将附加其参数,然后是Environment.Newline
如果不调用AppendLine()
,则需要自己包含换行符。
是。不过,要小心将其视为CRLF——StringBuilder内部使用Environment.Newline,因此值得自己使用Environments.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。
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);
}