我输出的服务器控件的整个HTML如下:
public override void Render(HtmlTextWriter output)
{
output.Write(myStringBuilder.ToString());
}
myStringBuilder是一个StringBuilder对象,它是在一个单独的私有方法中手动构建的。
这是一种有效的方法吗?或者将HtmlTextWriter传递给我的私有方法并对HtmlTextWriter.Write()进行多次调用是否更好?
答案 0 :(得分:6)
将HtmlTextWriter
传递给你的方法更有效率,然后它写入输出流,而不是缓冲多个字符串。
事实上,这就是核心.Net框架中的web控件的方式。在较高的层次上,很多将相同的HtmlTextWriter
传递给所有Render方法。通常,在进行大量读/写操作时,处理流更有效...这最终是你正在做的事情(在这种情况下,流是Reponse流)。
免责声明:这是一项小规模的优化,除非你创造的东西是单片的......但不过是优化。