【发布时间】:2012-09-12 13:51:13
【问题描述】:
我正在尝试手动模拟 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() 时它会在控制台窗口中显示文本。
【问题讨论】:
-
如果你想知道
Console类是如何工作的,我建议你阅读documentation。 -
你绝对可以使用一些低级的 pinvoke,brb 和答案......
-
“课程如何运作?”的正确答案应该与语言和功能无关。类是一个类,无论是 C#、Java 等。继承、封装等概念也是如此……
-
调用WriteConsole Win32 api。 stackoverflow.com/a/7325554/1429439
-
那么你想让你的模拟控制台在不使用控制台类的情况下写入 shell 的缓冲区吗?您想让您的控制台写入 Windows 窗体上的文本框(或使用自定义 UI 仅显示文本的其他情况)吗?您想从文件中读取输入并将输出写入文件吗?您是否只想跟踪内存中控制台的内容(比如
string、stringbuilder或类似名称)?