4

ここで見つけたいくつかのコードを適応させています: 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 が自動的に行うことだと思います。

4

3 に答える 3

11

はい。

AppendLine()はその引数を追加し、その後にEnvironment.Newline.
を呼び出さない場合AppendLine()は、自分で改行を含める必要があります。

于 2013-02-06T17:37:18.247 に答える
2

はい。ただし、これをCRLFと見なすことには注意してください。内部的にはStringBuilderは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を使用する特別な必要がない限り、私は推測します。

于 2013-02-06T17:43:32.263 に答える
2

の逆コンパイルされたソース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);
}
于 2013-02-06T17:47:12.580 に答える