假设我正在分析一个包含很多控件的解决方案,例如
public class FooControl : IControlBase
{
public void EvilMethod1()
{
// does some warning-level evil here
}
public void EvilMethod2()
{
// does some critical-level evil here
}
}
我想编写两个 CQLinq 查询来报告所有具有恶意代码的类(例如 EvilMethod1)以及在两个单独的查询中使用真正的恶意代码(例如 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
这段代码显然会被两个查询使用。有没有办法在两个查询中引用此代码,还是我被迫复制它?