在QuickStart的一段示例代码中,一个aspx.cs的Page_Load方法中,有如下一段代码:
StringWriter strWriter = new StringWriter();
Console.SetOut(strWriter);
//此处根据业务需要,多次进行 Console.WriteLine 操作
lblOut.Text = "<pre>" + strWriter.ToString() + "</pre>"; //lblOut是一个Lable的aspx控件我的疑问如下:
因为StringWriter类中有一个成员StringBuilder _sb,而且Console.WriteLine的字符串都存于_sb中。
既然如此,为何要在其代码中引入 StringWriter和Console,而不直接通过StringBuilder实现,在最后“lblOut.Text = "<pre>" + strWriter.ToString() + "</pre>"; ”同样实现呢?那样做有什么优势呢?
谢谢指教!
StringWriter strWriter = new StringWriter();
Console.SetOut(strWriter);
//此处根据业务需要,多次进行 Console.WriteLine 操作
lblOut.Text = "<pre>" + strWriter.ToString() + "</pre>"; //lblOut是一个Lable的aspx控件我的疑问如下:
因为StringWriter类中有一个成员StringBuilder _sb,而且Console.WriteLine的字符串都存于_sb中。
既然如此,为何要在其代码中引入 StringWriter和Console,而不直接通过StringBuilder实现,在最后“lblOut.Text = "<pre>" + strWriter.ToString() + "</pre>"; ”同样实现呢?那样做有什么优势呢?
谢谢指教!
解决方案 »
- 怎么实现在框架外自动返回框架内?
- 100分求Maxtocode专业版(无日期限制的),用来加密vs2005做的网站程序的dll.
- ASP虚拟主机如何实现301啊
- ApplicationBlocks.Data里的SqlDataReader怎么返回SqlParameter 值
- asp.net 连接Access时 插入数据库时提示:多步OLEDB操作产生错误,请检查OLEDB状态值,工作未完成
- 在线求救,求一正则表达式,很简单的。
- ASP.NET项目占用CPU资源过大的问题
- FusionCharts Free 导致的页面假死
- 想要系统学习ado.net有什么好教程
- 使用验证控件的问题
- RadioButtonList的一个小问题 很简单
- datagrid 中的ImageButton 删除一条数据对话框提示?急!!!
Console.SetOut();方法传入参数类型是TextWriter
TextWriter是一个抽象类:
System.CodeDom.Compiler.IndentedTextWriter
System.IO.StreamWriter
System.IO.StringWriter
System.Web.HttpWriter
System.Web.UI.HtmlTextWriter
StringWriter只是TextWrite的一具体实现.
如果方法改用了StringBuilder,那么SetOut()就受到很大限制.
StringBuilder 的功能并没有有Console这么丰富.对比两者的输入功能就知道.
也可能他先写的控制台项目例子,然后转移到web上也不一定。没有什么特别的考虑吧。