这个问题已经在这里有了答案:




已关闭8年。






与response.write()和response.output.write()有何不同?请解释。

最佳答案

See this:

ASP.NET中Response.Write()Response.Output.Write()之间的区别。简短的答案是,后者为您提供String.Format-style输出,而前者则没有。长答案如下。

在ASP.NET中,Response对象的类型为HttpResponse,当您说Response.Write时,您实际上是在说(基本上)是HttpContext.Current.Response.Write,并且是Write的许多重载HttpResponse方法之一。
Response.Write然后在其内部.Write()对象上调用TextWriter:

public void Write(object obj){ this._writer.Write(obj);}
HttpResponse还具有一个称为Output的属性,其类型为TextWriter,因此:
public TextWriter get_Output(){ return this._writer; }

这意味着您可以执行Response,无论TextWriter允许您做什么。现在,TextWriters支持Write()方法aka String.Format,因此您可以执行以下操作:
Response.Output.Write("Scott is {0} at {1:d}", "cool",DateTime.Now);

但是,在内部,这当然正在发生:
public virtual void Write(string format, params object[] arg)
{
this.Write(string.Format(format, arg));
}

关于c# - Response.Write()和Response.Output.Write()有什么区别? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1794792/

10-13 21:39