Насколько я знаю, шаблоны в Resharper могут быть сопоставлены только в методе.Таким образом, вы не можете сопоставить объявление конструктора.
Я только что попробовал следующий шаблон:
new $type$($args$)
Где тип это заполнитель для типа (кто бы мог догадаться?) И аргументовпо крайней мере, 3 аргумента.Это действительно находит все использует как минимум 3 аргумента конструкторов, но он не найдет конструкторы, которые не используются, и, что наиболее важно, он найдет это:
public class MyClass : MyAbstractClass
{
public MyClass(int foo1, int foo2) : base(foo1, foo2, 0)
{
// ...
}
}
Так что, возможно,если вы думаете, что у вас будут эти случаи, вместо использования шаблонов Resharper вы должны попытаться использовать регулярное выражение Find.Это может быть сложно, потому что, если подумать, синтаксис C # довольно сложный, но вы можете кое к чему ...
Редактировать: Я адаптировал поиск регулярных выражений в Visual Studio для объявления конструктора, распознает новые строки и внаименьшее количество аргументов (которые могут иметь необязательные значения):
^(:b|\n)*((public|internal|private|protected|static|sealed)(:b|\n)+)+:i(:b|\n)*\((:b|\n)*:i(:b|\n)+:i(:b|\n)*(|\=(:b|\n)*:a*(:b|\n)*)(,(:b|\n)*:i(:b|\n)+:i(:b|\n)*(|\=(:b|\n)*:a*(:b|\n)*))^2(,(:b|\n)*:i(:b|\n)+:i(:b|\n)*(|\=(:b|\n)*:a*(:b|\n)*))*\)
это ужасно, главным образом потому, что пользовательское регулярное выражение VS не имеет никакого перевода для стандарта \ w , {2,} и ? .