gpt4 book ai didi

c# - 我可以使用 NDepend 来计算类型转换吗?

转载 作者:太空狗 更新时间:2023-10-29 19:46:18 25 4
gpt4 key购买 nike

我有一些继承的代码倾向于将对象作为接口(interface)(例如 IFoo)传递,然后在代码的任意位置自发地将它们转换为这些接口(interface)的具体实现(例如 MyConcreteFoo)。

这是一个愚蠢的例子:

public bool IsThisFooScaredOfMonkeys(IFoo foo)
{
if (foo is MyConcreteFoo)
{
return ((MyConcreteFoo)foo).BelievesMonkeysAreEvil;
}
return false;
}

我想做的是编写一个 NDepend CQL 查询来获取这些类型的转换并给我每个方法、每个类型或任何其他东西的计数。只是为了让我知道我可以从哪里开始集中精力摆脱这种特定的愚蠢品牌,而不是让我的团队在代码中探索,随机寻找类型转换......

有谁知道有没有办法做到这一点?我猜不会(那里不会有太多人需要那个特定的功能)但我想我会先在这里问...:-)

当然,如果有任何其他关于加快 Actor 搜寻速度的想法,我们将同样感激不尽。

最佳答案

这会很好,但是 NDepend仅限于一组不包含单个语句的实体。

NDepend Entities

  1. 方法
  2. 领域
  3. 类型
  4. 命名空间
  5. 大会

尽管有这个限制,NDepend 仍然非常棒!也许这是下一个版本的功能。

现在 Patrick Smacchia 可能会告诉我不同​​的说法,所以我会就这个问题联系他。我希望能很快得到回复,因为他对事情了如指掌。

旁注:

如果您使用 ReSharper 5.0它有一个 Structural Search这样你就可以找到这样的语句。您必须自己构建搜索,但它是一个非常强大的工具。

这个模式会捕捉到上面的例子:

if($fooObject$ is $concreteFoo$)
{
return (($concreteFoo$)$fooObject$).$anyIdentifier$;
}

关于c# - 我可以使用 NDepend 来计算类型转换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3577962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com