C# 反射,用于检查字段赋值的方法正文



对于下面的类:

class A
{
    private List<int> intList;
    private List<bool> boolList;
    public InitializeClass()
    {
        intList = new List<int>();
    }
}

我想使用反射来编写各种 linter/post 编译器,以检查某个方法是否真的对类的字段有任何赋值。目的是自动检查我自己的错误。该类无法使用构造函数,因此我需要手动调用InitializeClass()

我已经想检查MethodInfo methodFieldInfo[] fields的所有字段,但不知道如何从这里开始。从上面的示例中,它应该能够检测到我没有在方法主体中为boolList分配任何内容。

我最终使用正则表达式直接读取代码文件。该文件有一些约束,也就是说它可以包含无限的方法,但每个方法不能包含任何括号。(否,如果等)

然后我使用 "({)(.*)(})" 并选择第 2 组来消除类的括号,然后我使用 "{(.*?)}" 并遍历每个方法主体的匹配项。(实际上我不在乎方法的名称,我想检查整个文件)之后,我逐行读取该方法的内容,并用"="或"等字符拆分内容。

最新更新