.NET Console TextWriter that Understands Indent/Unindent/IndentLevel

后端 未结 3 1704
清酒与你
清酒与你 2020-12-02 00:47

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.

3条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-02 01:13

    System.CodeDom.Compiler.IndentedTextWriter

    This is built in to the .Net Framework in system.dll, but it is not super-robust. It should work under constrained useage (like not having a newline character in a string).

        static void Main(string[] args)
        {
            using (System.CodeDom.Compiler.IndentedTextWriter writer = new System.CodeDom.Compiler.IndentedTextWriter(Console.Out, "    "))
            {
                Console.SetOut(writer);
                writer.Indent = 0;
                writer.WriteLine("test");
                writer.Indent = 1;
                writer.WriteLine("What happens\nif there are line-\nbreak in the middle?");
                writer.Indent = 2;
                writer.WriteLine("another test");
                writer.Indent = 3;
                writer.WriteLine("and another test");
                writer.Indent = 0;
                writer.WriteLine("hello");
            }
            Console.ReadLine();
        }
    

提交回复
热议问题