如何为Console.WriteLine覆盖使用自己的类?

Sle*_*eko 5 c# overriding

我希望我的ConsoleEngine班级处理Console.WriteLine()方法.我如何准备我的ConsoleEngine类来覆盖该WriteLine()方法?

Dav*_*ych 14

您可以创建一个派生自TextWriter以下的类:

public class MyWriter : TextWriter
{
    public override void Write(char value)
    {
        //Do something, like write to a file or something
    }

    public override void Write(string value)
    {
        //Do something, like write to a file or something
    }

    public override Encoding Encoding
    {
        get 
        {
            return Encoding.ASCII;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并将Console输出设置为该类的实例:

Console.SetOut(new MyWriter());
Run Code Online (Sandbox Code Playgroud)