Console中都是静态方法,有的时候我们可以需要一些特别的颜色和状态显示,
需要不停的重置Console的字体,一行行写代码有的时候我会觉得麻烦。
这里提供一种思路,学习Linq里面的链式调用,我们可以做到更多。
1 namespace System 2 { 3 public static class ConsoleX 4 { 5 private static readonly IConsoleExecutable executor; 6 7 static ConsoleX() 8 { 9 executor = new ConsoleExecutor(); 10 } 11 12 public static IConsoleExecutable WriteLineColor(ConsoleColor color, string message, params object[] para) 13 { 14 return executor.WriteLineColor(color, message, para); 15 } 16 17 public static IConsoleExecutable WriteColor(ConsoleColor color, string message, params object[] para) 18 { 19 return executor.WriteColor(color, message, para); 20 } 21 22 public static IConsoleExecutable Error(Exception e) 23 { 24 return executor.Error(e); 25 } 26 27 private class ConsoleExecutor : IConsoleExecutable 28 { 29 #region IConsoleExecutable Members 30 31 public IConsoleExecutable WriteLineColor(ConsoleColor color, string message, params object[] para) 32 { 33 Console.ForegroundColor = color; 34 Console.WriteLine(message, para); 35 Console.ResetColor(); 36 return this; 37 } 38 39 public IConsoleExecutable WriteColor(ConsoleColor color, string message, params object[] para) 40 { 41 Console.ForegroundColor = color; 42 Console.Write(message, para); 43 Console.ResetColor(); 44 return this; 45 } 46 47 public IConsoleExecutable Error(Exception e) 48 { 49 WriteLineColor(ConsoleColor.Red, e.ToString()); 50 return this; 51 } 52 53 #endregion 54 } 55 } 56 57 public interface IConsoleExecutable 58 { 59 IConsoleExecutable WriteLineColor(ConsoleColor color, string message, params object[] para); 60 61 IConsoleExecutable WriteColor(ConsoleColor color, string message, params object[] para); 62 63 IConsoleExecutable Error(Exception e); 64 } 65 }
原文:http://www.cnblogs.com/seraphim/p/4361755.html