【问题标题】:Extract method names from .CS code files从 .CS 代码文件中提取方法名称
【发布时间】:2015-06-10 11:29:36
【问题描述】:

我想将标准 csharp .CS 代码文件中的所有方法声明提取到一个数组中,忽略任何类。 我稍后会在验证项目中使用它,目前解释起来相当复杂

假设我们的 csharp 代码文件包含以下方法:

using System.Blah;
namespace abc
{
   public static class myclass
   {
      public void MethodA()
      {
        //... lines of code
      }
      public void MethodB()
      {
        //... lines of code
      }
   }
}

我想把它放入一个可以输出如下的数组

1. MethodA()
2. MethodB()

是否有您可以分享或知道的代码可以让我轻松做到这一点?

【问题讨论】:

标签: c# arrays string extraction


【解决方案1】:

不确定用途 - 您是将 cs 视为代码(因此需要验证它是否实际编译和执行方法)还是只是获取方法签名列表并将 cs 文件视为文本。

如果是后者并将 cs 视为文本,那么使用正则表达式将允许您基于正则表达式模式获取方法列表(名称和属性根据您的示例)

有关 java 方法的类似问题,请参阅此答案。就模式而言,语言之间的语法是相同的: https://stackoverflow.com/a/847507/4989423

您需要在您编写的单独实用程序中运行正则表达式,该实用程序读取相关的 cs 文件。

【讨论】:

  • 这非常有效。我什至在方法中嵌入了一些 if 语句,看看是否会破坏正则表达式,但它仍然有效。谢谢。
  • 我不相信原来的正则表达式 \s[a-zA-Z0-9_]+(.*) 是最好的解决方案。但如果它对您满意,我很乐意提供帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多