1

我正在尝试使用 NDepend 创建另一个自定义查询,但无法弄清楚。

这是我想查询的伪代码:

var list
foreach type t
    int newCount = 0
    foreach type u in t.TypesUsed
        if "new"-operator of u is called anywhere within t
            newCount++;
    end foreach
    list.Add( new Tuple<Type, int>(t, newCount) )
end foreach
return list    

我想知道“新”运算符在类型中的任何位置被调用了多少次。

我对 NDepend 查询的语法非常陌生。所以一些提示会有很大帮助:)

谢谢!

4

1 回答 1

1

您可以尝试此查询,该查询列出了每种类型t的代码中实例化的所有类型t(即,当通过new运算符调用其构造函数之一时实例化类型)。

from t in JustMyCode.Types
let typesInstantiated = from tUsed in t.TypesUsed 
                        where tUsed.Constructors.Any(c => c.IsUsedBy(t))
                        select tUsed
where typesInstantiated.Count() > 0
select new { t, typesInstantiated }

结果如下所示:

实例化的类型

于 2013-01-22T10:12:04.853 回答