gpt4 book ai didi

c# - 为 Console.Write 添加前缀的推荐方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 08:04:49 24 4
gpt4 key购买 nike

我正在寻找一种向每个 Console.Write[Line] 插入前缀(日期和时间)的方法。我正在寻找一种推荐的方法,就像更改输出的推荐方法是使用 Console.SetOut .

我很清楚我可以执行 String.Format("{0} {1}", DateTime.Now, msg),但我试图将其作为最后的手段。

问题是输出在运行时是可变的,默认的已经附加了当前时间。如果我将它附加到我的代码中,我将复制日期。

有这样的事吗?我正在使用 Monotouch,所以我只能使用为其编译的库。

最佳答案

您需要inheritSystem.IO.TextWrite 中,提供一个 Encoding 并覆盖例如WriteLineWrite。在使用 Console.setOut(x) 更改之前存储原始 Console.Out

这是一个完整的代码示例:

class PrefixedWriter : TextWriter
{
private TextWriter originalOut;

public PrefixedWriter()
{
originalOut = Console.Out;
}

public override Encoding Encoding
{
get { return new System.Text.ASCIIEncoding(); }
}
public override void WriteLine(string message)
{
originalOut.WriteLine(String.Format("{0} {1}", DateTime.Now, message));
}
public override void Write(string message)
{
originalOut.Write(String.Format("{0} {1}", DateTime.Now, message));
}
}

class Program
{
static void Main(string[] args)
{
Console.SetOut(new PrefixedWriter());
Console.WriteLine("test 1 2 3");
Console.ReadKey();
}
}

关于c# - 为 Console.Write 添加前缀的推荐方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10341318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com