Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What’s the difference between Response.Write() andResponse.Output.Write()? [duplicate]

Tags:

c#

asp.net

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.

like image 530
Surya sasidhar Avatar asked Nov 25 '09 05:11

Surya sasidhar


3 Answers

See this:

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)); 
}
like image 72
Graviton Avatar answered Oct 23 '22 00:10

Graviton


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
    }
like image 39
jai Avatar answered Oct 23 '22 01:10

jai


Response.write() is used to display the normal text and Response.output.write() is used to display the formated text.

like image 42
Binod Kumar Avatar answered Oct 22 '22 23:10

Binod Kumar