c# asp.net

c# - ¿Cuál es la diferencia entre Response.Write() yResponse.Output.Write()?



asp.net (5)

Posible duplicado:
¿Cuál es la diferencia entre Response.Write () y Response.Output.Write ()?

en qué se diferencia de response.write () y response.output.write () explican problemáticamente gracias a u.


Aquí Response.Write (): para mostrar solo la cadena y no puede mostrar ningún otro valor de tipo de datos como int, date, etc. No se permite la conversión (de un tipo de datos a otro). mientras que Response .Output .Write (): puede mostrar cualquier tipo de datos como int, date, string, etc., dando valores de índice.

Aquí está el ejemplo:

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 }


Nada, son sinónimos ( Response.Write es simplemente una forma más corta de expresar el acto de escribir en la salida de respuesta).

Si tienes curiosidad, la implementación de HttpResponse.Write ve así:

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

Y la implementación de HttpResponse.Output es esta:

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

Como puede ver, Response.Write y Response.Output.Write son expresiones verdaderamente sinónimas.


Response.write () no da salida formateada. El último le permite escribir salida formateada.

Response.write: escribe el flujo de texto Response.output.write: escribe el flujo de salida HTTP.


Ver esto

La diferencia entre Response.Write() y Response.Output.Write() en ASP.NET. La respuesta corta es que la última le da salida de String.Format-style y la primera no. La respuesta larga sigue.

En ASP.NET, el objeto Response es de tipo HttpResponse y cuando dice Response.Write Write realmente está diciendo (básicamente) HttpContext.Current.Response.Write y llame a uno de los muchos métodos de Write sobrecargados de HttpResponse .

Response.Write luego llama a .Write() en su objeto interno TextWriter :

public void Write(object obj){ this._writer.Write(obj);}

HttpResponse también tiene una propiedad llamada Output que es de tipo, sí, TextWriter , así que:

public TextWriter get_Output(){ return this._writer; }

Lo que significa que puedes hacer la Response importar lo que un TextWriter te permita. Ahora, TextWriters admite un método Write() también String.Format como String.Format , así que puedes 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)); }


Response.write() se usa para mostrar el texto normal y Response.output.write() se usa para mostrar el texto con formato.