现在要删除程序的注释,由于涉及N多.cs文件,注释一般又是有规则可找,当然想到写几行代码用来删除了,注释主要以两种形式存在,一是在行首以"//"开头,像这种可以删除该行可.二是程序行尾的注释,即
if(a==b)  //.......
这种只能删除"//"即该字符后字符串即可.
不知有什么好方法,用正则表达式吗.不是太熟悉.请大家给了建议或直接解决代码.(IDE不知道是否自带对注释处理功能)

解决方案 »

  1.   

    IDE是不带这个功能的,只能把CS当成文本文件来处理。
      

  2.   

    你的//后面又不知道有多少字符,如果文件不多的话,建议用ultraedit打开手动删好了,免得出错。
    ultraedit可以列出所有带//的地方。
      

  3.   

    呵呵有实力了,可以考虑扩充IDE的功能
      

  4.   

    其实我觉得这个问题我们可以解决的,因为在C#中有三种注释(实际上我们只需要考虑两种):
    1、//
    2、/*...*/
    3、///
    但是我们考虑第1种的时候也就解决了第三种情况的注释,所以我们实际上指需要考虑两种注释。首先,我们一行一行的读取,然后将读取的字符串(比如为str),判断其期开始的字符串是否为我们的注释符,参考代码(注意去掉空格):
    //设置一个类成员,表示该行是否属于多行注释;
    boole state=false;private void button1_click(...)
    {
      //读取一行if(str.Trim().EndsWith("*/"))
    {//多行注释结束行,删除;
    this.state=false;
    break;
    }
    if(state==true){
        //该行为多行注释中的一行,删除
    }
    if(str.Trim().StartsWith("//")
    {//单行注释,删除;
    break;
    }
    if(str.Trim().StartsWith("/*"))
    {//多行注释,删除;
    this.state=true;
    breeak;
    }经过判断,改行不是注释行,可保留
    }在规范代码中,可已通过上面四个判断,将注释代码清除,非注释代码可以复制到一个文本区保留,最后存储。非规范代码,不保证通过,特别有的人习惯:int i=3;//定义变量如果用我的方法,上面的语句也将被删除
      

  5.   

    下面是一段简单的代码,此代码会把//注释和/**/注释删掉string str = textBox1.Text;string pattern = @"//.*";
    System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(pattern);
    str = regex.Replace(str, "");string pattern2 = @"/\*.*\*/";
    System.Text.RegularExpressions.Regex regex2 = new System.Text.RegularExpressions.Regex(pattern2, System.Text.RegularExpressions.RegexOptions.Singleline);
    str = regex2.Replace(str, "");
    textBox1.Text = str;
      

  6.   


    楼主留下 e_mail ,偶这有一个别人写的删除程序中的注释的小程序(C#源码)