c# - 如何更改 C# 控制台应用程序的命令提示符

标签 c# console command-prompt

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

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

最佳答案

如果这不可能开箱即用,我建议提供一个自定义类来封装您将在后台线程中使用的Console 类,以将消息写入控制台。这也将使单元测试变得更加容易。

public class ClassInOtherThread
{
    private readonly IConsoleWriter _consoleWriter;

    public ClassInOtherThread(IConsoleWriter consoleWriter)
    {
        this._consoleWriter = consoleWriter;
    }

    public void DoSomething()
    {
        _consoleWriter.Write("something");
    }
}

public interface IConsoleWriter
{
    void Write(string value);
}

public class ConsoleWriter : IConsoleWriter
{
    public void Write(string value)
    {
        // Fix your >  problems in this class
        Console.Write(value);
    }
}

关于c# - 如何更改 C# 控制台应用程序的命令提示符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16956089/

相关文章:

javascript - 将 console.log 分配给另一个对象(Webkit 问题)

javascript - 如何在 Google Chrome JavaScript 控制台中打印调试消息?

c++ - 抓取程序的控制台输出

Git 命令行 - 知道是否在子模块中?

postgresql - 如何跨模式列出 postgres 中的所有表

c# - 这个加密代码安全吗?

c# - 集成测试详细

c# - 如何在C#中添加代理

postgresql - 连接到命令提示符以在 PostgreSQL 查询中通过 GNupg 生成 key

当值可以是数组或单个项目时,C# DataContractJsonSerializer 失败