2

次のように、サーバー コントロールの HTML 全体を出力しています。

public override void Render(HtmlTextWriter output)
{
  output.Write(myStringBuilder.ToString());
}

myStringBuilder は、個別のプライベート メソッドで手動で構築される StringBuilder オブジェクトです。

これは効率的な方法ですか?それとも、HtmlTextWriter をプライベート メソッドに渡して、HtmlTextWriter.Write() を複数回呼び出す方がよいでしょうか?

4

1 に答える 1

6

ダウンをメソッドに渡す方が効率的HtmlTextWriterです。その後、複数の文字列をバッファリングするのではなく、出力ストリームに書き込みます。

実際、これはコア .Net フレームワークの Web コントロールの方法です。大まかに言うと、同じHtmlTextWriterものをすべての Render メソッドに渡すことがたくさんあります。通常、多くの読み取り/書き込みを行う場合は、ストリームを処理する方が効率的です...これが最終的に行うことです (この場合、ストリームは応答ストリームです)。

免責事項: モノリシックなものを作成している場合を除き、これは小さな最適化ですが、最適化には変わりありません。

于 2010-02-04T00:34:50.943 に答える