繁体   English   中英

C#:手动创建console.writeline

[英]C# : Manually creating a console.writeline

我试图手动模拟Console.Writeline。 即:我正在创建一个带有WriteLine功能的小型Console类。 请参阅下面的代码:

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()时它会在控制台窗口中显示文本。

这取决于你想要的深度。 Console.WriteLine()的调用的WriteLine Console.Out内部。 Console.Out是一个TextWriter ,它提供WriteLine实现。 您可以通过直接将字节写入流来实现自己的WriteLine。

如果您想更深入,例如直接写入控制台缓冲区,请注意Console的Out,In和Error属性都是可重定向的,忽略它们可能会导致问题,例如无法使用重定向输入和输出命令行上的管道。

我猜你想要在相当低的水平上做到这一点。 我已经使用ReadConsoleOutputWriteConsoleOutputConsole.WriteLine不允许的方式直接读取和写入Console的显示(这些对于复古的2D控制台游戏来说非常棒,我原来的意图)。

PInvoke链接: ReadConsoleOutput | WriteConsoleOutput

您可能不需要ReadConsoleOutput ,但对于那些Google这个页面的人来说,这些方法是相辅相成的。

如果你想从键盘上读取, 我相信你可以使用ReadConsoleInput但我还没有尝试过。 关于那个建议的小粒盐。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM