一連の属性とメソッドを持つクラスがあります (もちろん、[属性メソッドではなく] 他のクラス メソッドを呼び出すことができます)。
クラスのソース コードと 1 つのメソッド名を入力として受け取るツールを作成する必要があります。このツールは、メソッド チェーンのコードによって変更された可能性のあるクラス属性のリストを返す必要があります。例えば:
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に影響すると常に言います。実際の変更ではなく、可能な変更のみを気にします。