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.
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.