我们有一个具有一组属性和方法的类(当然可以调用其他类方法[不是属性方法])。
我们需要创建一个工具,将类的源代码和一个方法名称作为输入,它应该通过方法链上的代码返回可能修改的类属性列表。例如:
private int a;
private int b;
private int c;
public void M1()
{
if (a == 2)
{
this.M3();
}
}
public void M2()
{
a = 3;
this.M3();
}
public void M3()
{
if (a == 7)
{
b = 1;
}
else
{
c = 2;
}
}
在这种情况下,请求 M1 它应该返回b和c,请求 M2 它应该返回a、b和c并且请求 M3 它应该返回b和c。
我不知道在哪里使用它,因为我以前从未解析过代码......在此先感谢。
编辑:为了清楚起见,我不需要评估不同的路径,如果我检查 M3,我总是会说它会影响 b 和 c,我只关心可能的变化,而不关心真实的变化。