Resharper R#能否找到在某个默认参数中显式传递值的方法的所有调用?

Resharper R#能否找到在某个默认参数中显式传递值的方法的所有调用?,resharper,Resharper,例如,假设我有以下方法: void f(int x, string y = null) { ... } R#能帮我找到所有使用两个显式参数调用f的地方吗?我不认为通过标准的find用法可以做到这一点,但我可以想出至少两种方法来找到所有使用两个显式参数的地方: 删除第二个参数 如果临时删除第二个参数,将得到一个编译错误列表,其中它试图显式使用第二个参数(启用解决方案范围的分析)在它们之间导航 否则(如果由于某种原因无法修改代码) 使用SSR(结构搜索和替换)查找它。 转到ReSharper-Fi

例如,假设我有以下方法:

void f(int x, string y = null)
{ ... }

R#能帮我找到所有使用两个显式参数调用
f
的地方吗?

我不认为通过标准的find用法可以做到这一点,但我可以想出至少两种方法来找到所有使用两个显式参数的地方:

删除第二个参数

如果临时删除第二个参数,将得到一个编译错误列表,其中它试图显式使用第二个参数(启用解决方案范围的分析)在它们之间导航

否则(如果由于某种原因无法修改代码)

使用SSR(结构搜索和替换)查找它。

转到ReSharper-Find-Search with Pattern,并创建以下模式:

$type$.f($args$)
其中,
$type$
是一个表达式占位符(可选地,指定保存方法
f
的类型) 其中,
$args$
是一个参数占位符,参数的最小数量限制设置为2

然后运行搜索,您应该能够只看到显式调用:

这显然取决于使用量,但对于较小的组,也有帮助


将插入符号放在可选参数上,然后使用Ctrl+Alt+Shift+A(默认快捷方式),然后使用Value Origin。

我通常使用第一种方法,但我更喜欢第二种方法,因为不需要编译代码。我去看看。谢谢。这也是一个很好的解决方案!喜欢价值跟踪功能!