See this:
La differenza tra Response.Write()
e Response.Output.Write()
in ASP.NET. La risposta breve è che quest'ultimo fornisce l'output String.Format-style
e il primo no. Segue la lunga risposta.
In ASP.NET l'oggetto Response
è di tipo HttpResponse
e quando dici Response.Write
si stanno realmente dicendo (in fondo) HttpContext.Current.Response.Write
e chiamando uno dei tanti sovraccaricate Write
metodi di HttpResponse
.
Response.Write
poi chiama .Write()
su di essa la interno TextWriter
oggetto:
public void Write(object obj){ this._writer.Write(obj);}
HttpResponse
ha anche una proprietà chiamata Output
che è di tipo, sì, TextWriter
, quindi:
public TextWriter get_Output(){ return this._writer; }
che significa che puoi fare il Response
qualunque cosa lo permetta a TextWriter
. Ora, TextWriters supportano un metodo Write()
aka String.Format
, in modo da poter fare questo:
Response.Output.Write("Scott is {0} at {1:d}", "cool",DateTime.Now);
ma internamente, naturalmente, questo sta accadendo:
public virtual void Write(string format, params object[] arg)
{
this.Write(string.Format(format, arg));
}
Grazie Mr. Ngu Soo Hui –
Inciampato su questo da Google - il contenuto originale del link (riprodotto in questa risposta) proviene da un post "04 sul blog di Hanselman - http://www.hanselman.com/blog/ASPNETResponseWriteAndResponseOutputWriteKnowTheDifference.aspx – brichins