.NET 控制台 TextWriter 可以理解 Indent/Unndent/IndentLevel

.NET Console TextWriter that Understands Indent/Unindent/IndentLevel(.NET 控制台 TextWriter 可以理解 Indent/Unndent/IndentLevel)
本文介绍了.NET 控制台 TextWriter 可以理解 Indent/Unndent/IndentLevel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有人拥有或知道控制台的 TextWriter 了解如何缩进/取消缩进并能够设置缩进级别.

Does anybody have or know of a TextWriter for the Console that understand how to indent/unindent and has the ability to set the indent level.

推荐答案

试试这个:

class MyConsole : TextWriter {
    TextWriter mOldConsole;
    bool mDoIndent;

    public MyConsole() {
        mOldConsole = Console.Out;
        Console.SetOut(this);
    }

    public int Indent { get; set; }

    public override void Write(char ch) {
        if (mDoIndent) {
            mDoIndent = false;
            for (int ix = 0; ix < Indent; ++ix) mOldConsole.Write("  ");
        }
        mOldConsole.Write(ch);
        if (ch == '
') mDoIndent = true;
    }

    public override System.Text.Encoding Encoding {
        get { return mOldConsole.Encoding; }
    }
}

示例用法:

class Program {
    static MyConsole Output = new MyConsole();
    static void Main(string[] args) {
        Console.WriteLine("Hello");
        Output.Indent++;
        Console.WriteLine("world");
        Output.Indent--;
        Console.WriteLine("Back");
        Console.ReadLine();
    }
}

这篇关于.NET 控制台 TextWriter 可以理解 Indent/Unndent/IndentLevel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
quot;Overflowquot; compiler error with -9223372036854775808L(编译器错误-9223372036854775808L(Q;溢出Q))
Visual Studio 2010 ReportViewer Assembly References(Visual Studio 2010 ReportViewer程序集引用)
Weird behaviour when I open a reportviewer in WPF(在WPF中打开报表查看器时出现奇怪的行为)
how do i pass parameters to aspnet reportviewer(如何将参数传递给aspnet report查看器)