В чем разница между Response.Write() иResponse.Output.Write()?

Возможный дубликат:
Какая разница между Response.Write() и Response.Output.Write()?

как он отличается от response.write() и response.output.write(), объясняет проблему с благодарностью.

Ответы

Ответ 1

Смотрите это:

Разница между Response.Write() и Response.Output.Write() в ASP.NET. Короткий ответ заключается в том, что последний дает вам выход 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 все, что a 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)); 
}

Ответ 2

Здесь Response.Write(): для отображения только строки, и вы не можете отображать какие-либо другие значения типа данных, такие как int, date и т.д. Преобразование (из одного типа данных в другое) недопустимо. тогда как Response.Output.Write(): вы можете отображать любые типы данных, такие как int, date, string и т.д., указав значения индекса.

Вот пример:

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
    }

Ответ 3

Response.write() используется для отображения обычного текста, а Response.output.write() используется для отображения форматированного текста.

Ответ 4

Ничего, они синонимы (Response.Write - это просто более короткий способ выразить акт записи на выход ответа).

Если вам интересно, реализация HttpResponse.Write выглядит так:

public void Write(string s)
{
    this._writer.Write(s);
}

И реализация HttpResponse.Output такова:

public TextWriter Output
{
    get
    {
        return this._writer;
    }
}

Итак, как вы можете видеть, Response.Write и Response.Output.Write являются действительно синонимичными выражениями.

Ответ 5

Response.write() не дает форматированного вывода. Последний позволяет вам писать форматированный вывод.

Response.write - он записывает текстовый поток Response.output.write - он записывает поток вывода HTTP.