See this:
La diferencia entre Response.Write()
y Response.Output.Write()
en ASP.NET. La respuesta corta es que este último le da String.Format-style
de salida y el primero no. La respuesta larga sigue.
En ASP.NET Response
el objeto es de tipo HttpResponse
y cuando se dice Response.Write
que realmente están diciendo (básicamente) HttpContext.Current.Response.Write
y llamando a uno de los muchos métodos sobrecargados Write
de HttpResponse
.
Response.Write
luego llama .Write()
en él es interna TextWriter
objeto:
public void Write(object obj){ this._writer.Write(obj);}
HttpResponse
tiene también una propiedad llamada Output
que es de tipo, sí, TextWriter
, por lo que:
public TextWriter get_Output(){ return this._writer; }
que significa que puede haga el Response
lo que sea que TextWriter
le permita. Ahora, TextWriters apoyan un método Write()
aka String.Format
, por lo que se puede hacer esto:
Response.Output.Write("Scott is {0} at {1:d}", "cool",DateTime.Now);
Pero internamente, por supuesto, esto está sucediendo:
public virtual void Write(string format, params object[] arg)
{
this.Write(string.Format(format, arg));
}
Gracias Sr. Ngu Soo Hui –
Tropezado en esto de Google - el contenido original del enlace (reproducido en esta respuesta) proviene de una publicación de '04 en el blog de Hanselman - http://www.hanselman.com/blog/ASPNETResponseWriteAndResponseOutputWriteKnowTheDifference.aspx – brichins