6

我想使用 Resharper 结构搜索和替换模板来自动替换以下示例:

new Fruit { Name = "Apple", IsTasty = true }

有了这个:

new Fruit("Apple", true)

(注意,需要的构造函数已经存在)

我尝试了各种这样的组合:

new $type$ { Name = $name$, IsTasty = $isTasty$ };

...使用各种不同的占位符类型,但 R# 在我的代码中找不到任何示例。有没有人这样做过?

4

2 回答 2

6

所以我只是在 resharper 中做到了这一点(我认为是 9.0.2)

创建模式:FruityChange

  • 新的 $type$ { 名称 = $param1$,IsTasty = $param2$ }
  • $type$ 是一种类型
  • $param1$ 是字符串类型的表达式
  • $param2$ 是 bool 类型的表达式
  • 模式严重性“显示为错误”

与类水果

public class Fruit
{
    public Fruit(string name, bool isTasty)
    {
        Name = name;
        IsTasty = isTasty;
    }

    public string Name { get; set; }
    public bool IsTasty { get; set; }
}

这强调了代码编辑器中的表达式,并且 alt-tab 给了我“替换为”选项。它至少适用于我的机器:-)

于 2015-04-17T09:46:41.193 回答
2

默认情况下,R# 似乎将您的占位符视为标识符,并且模式匹配失败。

双击右侧的每个占位符,将“标识符”更改为“表达式”。

在此处输入图像描述

于 2015-04-16T16:28:41.453 回答