我正在构建一个C#控制台应用程序,并希望将前奏符号自定义为其他诸如“>”的符号。我检查了类Console的属性,但找不到任何人做这项工作。解决方法是,在代码中,在编写任何新行之前,先编写一个“>”符号。但这不是一个完美的解决方案,尤其是当有后台工作线程打印消息时,有时前奏符号会丢失,因为工作线程可能在主线程写前奏之前就先写了消息。

我搜索了网页,但没有找到任何提示,是否有标准解决方案?

最佳答案

有标准的解决方案吗?


没有。

Aphelion说要创建一个自定义类来处理此问题时,他的想法被打中了。

   public static class I
 {
    public string preclude = ">";
    public static void WriteLine(string message)
    {
     Console.WriteLine(preclude+message);
    }
    public static void ReadLine()
    {
     Console.Write(preclude);Console.ReadLine();
    }
 }


因为您有向控制台写入的后台线程,所以还应该进行检查以确保您没有冲突的写行,例如在请求用户输入时。您将必须在要求用户输入的同时在编写的线程中实现Console.MoveBufferArea,否则如果用户处于键入中间,则会遇到问题。

只需将Console.WriteLine替换为I.Console.WriteLine,即可轻松更新代码。

08-06 00:45