2009-07-19 3 views
19
Console.WriteLine実際 Console.WriteLineConsole.Out.WriteLine

なぜConsole.Out.WriteLineは存在するのですか?

のラッパーとして存在するのはなぜですか?intellisenseを使ってこの小さなメソッドを見つけ、.NET reflectorを開き、Console.WriteLineメソッドのコードを「逆コンパイル」して、これを見つけました:

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

なぜWriteLineはこのように実装されていますか?それはまさにショートカットですか、別の理由がありますか?

答えて

44

Console.WriteLineは静的メソッドです。 Console.Outは、TextWriterを取るメソッドにパラメーターとして渡すことができる静的オブジェクトであり、そのメソッドは非静的メンバーメソッドWriteLineを呼び出すことができます。これは有用であろう

の例では、いくつかのランタイムに基づいて、いくつかのあなたはstdoutに出力を送信することもできますカスタマイズ可能なログ・ルーチンの一種、(Console.Out)、どこstderrConsole.Error)または(System.IO.TextWriter.Null)、または何か他のものです調子。

4

Brad Abrams(MicrosoftのCLRと.NETフレームワークの創設メンバー)は次のように述べています。

Console.WriteLine()は、Console.Out.WriteLineのショートカットです。 コンソールをWriteLineプロパティで過負荷にして、を書きやすくしました。

出典:書籍「The C#Programming Language by Anders Hejlsberg」。

関連する問題