3

Console.Writeline を手動でシミュレートしようとしています。すなわち:関数WriteLineで小さなコンソールクラスを作成しています。以下の私のコードを参照してください:

static class Console
{
    public static string WriteLine(string text)
    {
        return text;
    }
}

だから私はそれを試しました:

class Program
{
    static void Main()
    {
        Console.WriteLine("HiMan");
    }
}
static class Console
{
    public static string WriteLine(string text)
    {
        return text;
    }
}

テキストが返されることはわかっていますが、Write または Writeline メソッドを使用せずに画面に表示するにはどうすればよいですか?

クラスがどのように機能するか、および WriteLine または Write() を使用するとコンソール ウィンドウにテキストが表示される理由を人々に理解してもらうために、この例を作成しています。

4

2 に答える 2

2

それはあなたがどれだけ深く行きたいかによって異なります。Console.WriteLine()は、内部でConsole.OutのWriteLine を呼び出します 。Console.Out は、WriteLine 実装を提供するTextWriterです。バイトをストリームに直接書き込むことで、いつでも独自の WriteLine を実装できます。

コンソール バッファに直接書き込むなど、さらに深く掘り下げたい場合は、Console の Out、In、および Error プロパティはすべてリダイレクト可能であり、それらを無視すると、次を使用して入出力をリダイレクトできないなどの問題が発生する可能性があることに注意してください。コマンドラインでパイプします。

于 2012-09-12T13:56:54.710 に答える
0

かなり低いレベルでこれを行いたいと思います。私はReadConsoleOutputWriteConsoleOutputコンソールの表示を直接読み書きするためにConsole.WriteLine、私にはできない方法で使用してきました (これらは、レトロな 2D コンソール ゲームに最適です。私の本来の意図です)。

PInvoke リンク: ReadConsoleOutput | WriteConsoleOutput

は必要ないかもしれませんが、ReadConsoleOutputこのページを Google で検索する人にとっては、これらのメソッドは互いに関連しています。

キーボードから読みたい場合は、使用できると思いますがReadConsoleInput実際には試していません。そのアドバイスにちょっとした塩の粒。

于 2012-09-12T14:24:20.700 に答える