たとえば、多くのコントロールを含むソリューションを分析しているとしましょう。
public class FooControl : IControlBase
{
public void EvilMethod1()
{
// does some warning-level evil here
}
public void EvilMethod2()
{
// does some critical-level evil here
}
}
2 つの CQLinq クエリを記述して、悪意のあるコード (EvilMethod1 など) を持つすべてのクラスと、2 つの別個のクエリで本当に悪意のあるコード (EvilMethod2 など) を使用するクラスをすべて報告したいと考えています。
このクエリで分析する必要があるすべての型を見つけるために、次のようなコードを記述します。
let Controls = from t in Types
where t.NameLike("Control")
&& t.Implement(@"myNamespace.IControlBase")
select t
from c in Controls
... // actual query goes here
このコードは明らかに両方のクエリで使用されます。両方のクエリでこのコードを参照する方法はありますか、それとも複製する必要がありますか?