Possible Duplicate:
What’s the difference between Response.Write() and Response.Output.Write()?
How is it different from response.write() and response.output.write()? Please explain.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
The difference between Response.Write() and Response.Output.Write() in ASP.NET. The short answer is that the latter gives you String.Format-style output and the former doesn’t. The long answer follows.
In ASP.NET the Response object is of type HttpResponse and when you say Response.Write you’re really saying (basically) HttpContext.Current.Response.Write and calling one of the many overloaded Write methods of HttpResponse.
Response.Write then calls .Write() on it’s internal TextWriter object:
public void Write(object obj){ this._writer.Write(obj);}
HttpResponse also has a Property called Output that is of type, yes, TextWriter, so:
public TextWriter get_Output(){ return this._writer; }
Which means you can do the Response whatever a TextWriter will let you. Now, TextWriters support a Write() method aka String.Format, so you can do this:
Response.Output.Write("Scott is {0} at {1:d}", "cool",DateTime.Now);
But internally, of course, this is happening:
public virtual void Write(string format, params object[] arg)
{
this.Write(string.Format(format, arg));
}
Method 2
Here Response.Write():to display only string and you can not display any other data type values like int,date,etc.Conversion(from one data type to another) is not allowed.
whereas Response .Output .Write(): you can display any type of data like int, date ,string etc.,by giving index values.
Here is example:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write ("hi good morning!"+"is it right?");//only strings are allowed
Response.Write("Scott is {0} at {1:d}", "cool", DateTime.Now);//this will give error(conversion is not allowed)
Response.Output.Write("nhi goood morning!");//works fine
Response.Output.Write("Jai is {0} on {1:d}", "cool", DateTime.Now);//here the current date will be converted into string and displayed
}
Method 3
Response.write() is used to display the normal text and Response.output.write() is used to display the formated text.
Method 4
Nothing, they are synonymous (Response.Write is simply a shorter way to express the act of writing to the response output).
If you are curious, the implementation of HttpResponse.Write looks like this:
public void Write(string s)
{
this._writer.Write(s);
}
And the implementation of HttpResponse.Output is this:
public TextWriter Output
{
get
{
return this._writer;
}
}
So as you can see, Response.Write and Response.Output.Write are truly synonymous expressions.
Method 5
Response.write() don’t give formatted output.
The latter one allows you to write formatted output.
Response.write – it writes the text stream
Response.output.write – it writes the HTTP Output Stream.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0