c# .net windows console-application reflector

c# - ¿Por qué existe Console.Out.WriteLine?



.net windows (2)

En realidad, la pregunta debería ser ¿por qué Console.WriteLine existe solo para ser un contenedor para Console.Out.WriteLine

Encontré este pequeño método usando intellisense, luego abrí el reflector .NET y ''descompilé'' el código para el método Console.WriteLine y encontré esto:

public static void WriteLine(string value) { Out.WriteLine(value); }

Entonces, ¿por qué se implementa WriteLine esta manera? ¿Es totalmente solo un atajo o hay alguna otra razón?


Console.WriteLine es un método estático. Console.Out es un objeto estático que se puede pasar como parámetro a cualquier método que tome un TextWriter , y ese método podría llamar al método de miembro no estático WriteLine .

Un ejemplo en el que esto sería útil es algún tipo de rutinas de registro personalizables, donde es posible que desee enviar la salida a stdout ( Console.Out ), stderr ( Console.Error ) o a ninguna parte ( System.IO.TextWriter.Null ), o Cualquier otra cosa basada en alguna condición de tiempo de ejecución.


Brad Abrams (el miembro fundador de CLR y .NET framework en Microsoft) dice lo siguiente.

Console.WriteLine () es simplemente un acceso directo para Console.Out.WriteLine . La consola estaba sobrecargada por la propiedad WriteLine para facilitar la escritura .

Fuente: Libro "El lenguaje de programación C # por Anders Hejlsberg".