0

Webを検索し、MSDNのドキュメントを読んだ後、C#でタブ文字を複製する方法のを見つけることができませんでした。ついに理解したときに、ここに質問を投稿するつもりでした...

C#に精通している人には明らかですが、さまざまなフォーラムで非常に多くの同様の質問があったので、を投稿する価値があると思いました(私のようにC#をまだ学んでいる人にとって)。キーポイント:

  1. に「二重引用符」を使用するstring
  2. には「一重引用符」を使用しますchar
  3. \t文字列内はタブに変換されます:"John\tSmith"
  4. '\t'それ自体はタブ定数のようなものです

HTML行の前にタブを追加し、改行で終了するコードを次に示します。

public static string FormatHTMLLine(int Indent, string Value)
{
  return new string('\t', Indent) + Value + "\n";
}

次のものも使用できます。

string s = new string('\t', Indent);

これは、C#でタブを複製するための最も効率的な方法ですか?私はまだ「流暢」ではないので、ポインタをいただければ幸いです。

4

2 に答える 2

1

1) new string('\t', Indent) を呼び出した結果をキャッシュして再利用する必要があります。2) FormatHTMLLine から新しい文字列を生成しないようにしてください。たとえば、それらを出力ストリームに書き込むことを検討できます。

void IndentWrite(int indent, string value)
{
    if (indent > 0)
    {
       if (s_TabArray == null)
       {
         s_TabArray = new char[MaxIndent];

         for (int i=0; i<MaxIndent; i++) s_TabArray[i]='\t';
       }

       m_writer.Write(s_TabArray, 0, indent);
    }

    m_writer.Write(value);
    m_writer.Write('\n');
}
于 2012-08-17T19:23:57.687 に答える
1

はい、これが最善の方法だと思います。

使用している文字列コンストラクターは、最初の引数として指定した文字を含む文字列を繰り返し作成します。countここcountで、 は 2 番目の引数です。

于 2012-08-17T19:23:04.160 に答える