哪个在ASP.NET中呈现服务器控件更有效

fra*_*lic 2 c# asp.net custom-server-controls htmltextwriter

我正在为我的服务器控件输出整个HTML,如下所示:

public override void Render(HtmlTextWriter output)
{
  output.Write(myStringBuilder.ToString());
}
Run Code Online (Sandbox Code Playgroud)

myStringBuilder是一个StringBuilder对象,它是在一个单独的私有方法中手动构建的.

这是一种有效的方法吗?或者将HtmlTextWriter传递给我的私有方法并对HtmlTextWriter.Write()进行多次调用是否更好?

Nic*_*ver 6

传递HtmlTextWriter给你的方法更有效率,然后它写入输出流,而不是缓冲多个字符串.

实际上,这就是核心.Net框架中web控件的方式.在很高的层次上,很多都是将它们传递给HtmlTextWriter所有Render方法.通常,在进行大量读/写操作时,处理流更有效......这最终是你正在做的事情(在这种情况下,流是Reponse流).

免责声明: 这是一个很小的优化,除非你创造一个单一的东西......但是优化也是如此.