.net 快速简便的拆卸方法";“死亡”;(注释掉)代码

.net 快速简便的拆卸方法";“死亡”;(注释掉)代码,.net,vb.net,regex,dead-code,.net,Vb.net,Regex,Dead Code,我正在使用一个继承的代码库,它包含数千行注释掉的代码。我知道以前的编码员是想把他所有的辛苦工作留给子孙后代,而不是简单地删除它,但是:我永远不会读它,它只是妨碍了我。一个问题示例是,当我对某些代码段执行文本搜索时,在注释代码中会出现几十个“错误”点击。皮塔 是否有一种快速/简单的方法来检测大量注释掉的代码?也许是一个聪明的正则表达式 此时我正好在VB.NET中工作,注释字符是一个单撇号。这就是版本控制系统的用途 我会确保它在版本控制下(希望不是可视化源代码安全的),签出它,删除所有注释代码,然后

我正在使用一个继承的代码库,它包含数千行注释掉的代码。我知道以前的编码员是想把他所有的辛苦工作留给子孙后代,而不是简单地删除它,但是:我永远不会读它,它只是妨碍了我。一个问题示例是,当我对某些代码段执行文本搜索时,在注释代码中会出现几十个“错误”点击。皮塔

是否有一种快速/简单的方法来检测大量注释掉的代码?也许是一个聪明的正则表达式


此时我正好在VB.NET中工作,注释字符是一个单撇号。

这就是版本控制系统的用途

我会确保它在版本控制下(希望不是可视化源代码安全的),签出它,删除所有注释代码,然后签回


我也不鼓励将来在您的开发团队中使用这种做法。

您可以使用正则表达式搜索。寻找

^.*'.*$
查找带有注释的单行。您可能希望找到至少3行以注释开头的行:

^.*'.*\n.*'.*\n.*'.*$

不要让猫靠近你的键盘。

恐怕我同意达菲莫的看法。我认为您不会找到可靠的自动方法来删除注释掉的代码。我相信如果你足够努力的话,你会找到一个,但是你最好把时间花在工作上

我在过去曾经遇到过这种情况(太频繁了),我最终做的是在处理各种模块时删除注释掉的代码

例如,我打开类Person进行更改,看到注释掉的代码尚未删除。我签出代码(我们使用VSS),删除错误代码,签入代码,最后签出代码来完成我的工作


在它消失之前需要时间,但我觉得这是一种有效地利用时间来解决问题的方法。

我建议为Visual Studio编写或找到一个宏来帮助删除评论

一些伪逻辑:

  • 从行号开始,读取第一个字符。记住这个行号
  • 如果是VB注释字符
    ,则继续
  • 阅读下一行的第一个字符。如果是注释字符,请继续
  • 在查找非注释字符的行时,分析所遍历的行数
  • 如果遍历的行数与阈值n匹配,则删除它们
查找
/
样式的10行并发注释掉的行

已注释的测试:

\s*//\s*\[Test\].*\n
有一个设施来帮助你

对于任何到此结束的C#人,使用以下正则表达式查找注释行

(^|[^/])//[^/]

我知道这是一条老线索,但帮助我的诀窍还没有被提及

我搜索此正则表达式:

(^\s*'。=。\n)^

它会找出包含等号的注释行。我的经验是,大多数注释掉的代码块至少包含一行有赋值的代码,并且等号在实际注释中非常罕见


我不会自动进行替换,我只需按F3键,如果它与一行匹配,我只需按enter键以新行替换突出显示的文本。如果它落在一个被注释掉的行块的一部分,那么我只需手动选择,按enter键,然后再次按F3键。

是否有任何要保留的注释?如果注释看起来像是包含代码,而不是包含普通文本,是否应该删除该注释?这就是问题所在。这里有一些有用的评论,但它们有两行、三行或四行。无用的注释代码往往会运行几十行或数百行注释行。我认为一些聪明的正则表达式可以解决这个问题。可以找到10行或更多以单撇号开头的连续行的东西。如果正则表达式为我选择了注释过的代码,我可以简单地点击delete并继续下一个块。我们正在使用Subversion,所以我不担心“丢失”任何东西。在版本控制系统成为标准之前,这段代码在很多年前就开始使用了,等等,VB3。我手动清除积垢,但这是劳动密集型的,所以我正在寻找一种更快的方法。我想继续重构“实时”代码。听起来像是一个教育问题。告诉你的团队不要再这样做了,然后开始艰苦的工作来收拾残局。这难道不会最终删除所有想要的评论吗?如何区分旧代码和所需注释?这是为了查找和选择注释代码,按DEL键是OP的工作。+1。这将比我涉及宏的回答快得多,用户控制得更多。这非常接近于工作。我只是想稍微调整一下正则表达式。我试过这样的方法:^..*\n.*\n.*\n.*\n.*\n.*\n.*\n.*\n.*\n.*$虽然很难看,但效果不错。一个缺点是,它还选择在末尾加上逗号后缀的行。更好的匹配是检测新行+任何空格+撇号+代码,并与nobugz达成一致。我只需要加快这个过程。让正则表达式进行选择,我将决定所选代码是否值得保留。我要么按F3继续,要么按Del。“我们使用VSS”-我很抱歉。这是市场上最差的产品,毫无疑问。当有更具能力的替代品可供选择时,你为什么要这样做呢?但是谢谢你的支持。我也遇到过这种情况,我也这样做了。如果某个特定的注释掉的代码令您烦恼,请将其删除。如果它存在于其他地方,但它现在没有妨碍您,那么删除它是浪费时间。务实一点,不要浪费时间整理那些有效的、不需要修改或阅读的代码。@duffymo:我同意,但这是我无法控制的。(我提出了一些建议)但是,这是公司的标准,而且是一家大公司。@MarkJ:谢谢。我认为你很好地阐述了我的想法。这帮助我找到了大量注释掉的代码:)由于某些原因,这对我不再适用,我不得不使用(^\s*//)。
(^|[^/])//[^/]