在我们的调试输出到VS输出窗口的信息,有时候我们想要鼠标点击就定位该该文件,改行,甚至该列。在强大的VS工具中已经给我们提供了这个功能,我们只需要把输出到输出窗

口的字符串就是一定的格式化就可以了。c#在VS输出窗口格式为:
文件名称(行号,列号):消息信息。
比如我 test.cs(100,78):消息信息。就是对应我们的test.cs文件的100行78个字符。
在这里我写了一个简单异常输出信息的扩展类。
代码具体如下:   

  1. 代码   
  2.  
  3. public class OutPutExceptionEx  
  4.     {  
  5.         public static void WriteLine(string message, Exception ex)  
  6.         {  
  7.             System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(ex, true);  
  8.             System.Diagnostics.StackFrame frm = st.GetFrame(0);  
  9.             if (frm != null)  
  10.             {  
  11.                 System.Diagnostics.Debug.WriteLine(string.Format("{0}({1},{2}):{3})", frm.GetFileName(), frm.GetFileLineNumber(), frm.GetFileColumnNumber(),   
  12.  
  13. message));  
  14.             }  
  15.  
  16.         }  
  17.  
  18.         public static void WriteLine(Exception ex)  
  19.         {  
  20.             WriteLine(ex.Message, ex);  
  21.         }  
  22.  
  23.         public static void Write(string message, Exception ex)  
  24.         {  
  25.             System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(ex, true);  
  26.             System.Diagnostics.StackFrame frm = st.GetFrame(0);  
  27.             if (frm != null)  
  28.             {  
  29.                 System.Diagnostics.Debug.Write(string.Format("{0}({1},{2}):{3})", frm.GetFileName(), frm.GetFileLineNumber(), frm.GetFileColumnNumber(),   
  30.  
  31. message));  
  32.             }  
  33.  
  34.         }  
  35.  
  36.         public static void Write(Exception ex)  
  37.         {  
  38.             Write(ex.Message,ex);  
  39.         }  
  40.     }  
  41.  
  42. //测试  
  43.     class Program  
  44.     {  
  45.         static void Main(string[] args)  
  46.         {  
  47.  
  48.             try  
  49.             {  
  50.                 throw new Exception("这个发生了一个错误!");  
  51.             }  
  52.             catch (Exception ex)  
  53.             {  
  54.                 OutPutExceptionEx.Write(ex);  
  55.             }  
  56.  
  57.             Console.WriteLine("ok");  
  58.             Console.Read();             
  59.         }  
  60. }  
  61.  

图片效果:

2