我记得再C中有一个__LINE__的宏可以获得当前行号,再C#中没有宏了,用什么方法可以获得当前行号呢?

解决方案 »

  1.   

    读txt文件啊?还是什么?
    我都是用循环的readline,在循环里加个int 型的自己数多少行
    难道能直接得到么?
      

  2.   

    是啊,调试,我得.net不能调试了,说我不是Debugger Users组的成员,我折腾快一个星期了,CSDN上的方法全部试过了,还有别人blog上的也试过了,我甚至连删除分区,格式化硬盘,再装2003再装.net都试过了,还是说我不是那个组的成员,.net的版本也换过了,最后决定放弃,毕竟原来再linux下混过的,用原始调试方法把,但是这个这个,没有define debug 和ifdefine就有点小麻烦了,但是现在获取代码当前行号也没有,啊……头疼
      

  3.   

    time_is_life(今夜太冷) 这位前辈,貌似你也遇到过我的问题把,拜读过你鄙视微软的帖子,本来想鄙视一把的,结果你结贴了,呵呵,你后来怎么解决的?
      

  4.   

    Debugger Users 成员问题一共有8种情况,MSDN上有专门的一个文章介绍题目似乎是"将Visual Studio .Net 用于 ASP.NET 调试 "之类的. 看得仔仔细细....很多人说试了上面的方法不管用,其实是自己看不仔细. 由于英文翻译的时候没翻译全,所以...有些地方得自己对应着做.当前行号显示出来不就有了???没看懂你什么意思....在工具,选项里,似乎是文本编辑器,C#下面,有显示行号的选项.C#中没有宏了..... 但是记住,C#中也有预编译的,
    所以 #if DEBUG 可以继续用的 ,而且更方便,因为直接在项目属性中设置好在调试状态定义什么(比如 "DEBUG" ),发布状态定义什么,然后在整个项目中都可以在代码里直接  #if DEBUG 
    VS.NET 几个月没用了....记忆不是很清,你自己找找?
      

  5.   

    试试这个,在发生异常的时候能够输出行号等信息
    try
    {
    ....
    }
    catch(Exception)
    {
    System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(true);
    System.Diagnostics.StackFrame sf = null;
    int count = st.FrameCount;
    for (int i=0; i<count; i++)
    {
      sf = st.GetFrame(i);
      Console.WriteLine(sf.ToString()+sf.GetFileLineNumber()+sf.GetFileName());
    }
    }
      

  6.   

    分数品均给了,调试问题解决了,syeerzy说的对,要仔细看,不是全部都翻译了的,最后还是按照上面说的方法解决了调试问题,但是还是不知道用什么方法再输出中显示输出代码的行号