ReSharper将提供将字段初始值设定项移动到构造函数:
我正在寻找一种方法来反转过程 - 将初始化从构造函数移动到字段初始化程序。
即,从:
开始class C
{
readonly int i;
public C()
{
i = 42;
}
}
结束于:
class C
{
readonly int i = 42;
public C() { }
}
ReSharper支持吗?
答案 0 :(得分:3)
是的,你可以这样做。
为了从这个起始位置这样做:
class Program
{
public Program()
{
int i = 42;
}
}
将光标放在int i = 42;
的线上(您可能需要玩一点,我相信只有在我尝试时将光标放在i
前面时才有效),转到 Resharper - > Refactor - > 介绍字段。
选择字段初始值设定项和使字段只读。
结果:
class Program
{
private readonly int _i = 42;
public Program()
{
}
}
可以找到更多信息here。
答案 1 :(得分:1)
您可以使用“结构搜索和替换”来执行此操作。
它适用于您的简单示例,但可能需要进行修改以匹配更复杂的案例,甚至可能不支持它们。无论如何玩它。
要导入模板,请转到 ReSharper>管理选项,右键单击现有图层(如果需要,请预先创建新图层),选择从>导入;从网址导入并指定上面的原始网址。
一旦完成,就会出现新的代码检查,并快速修复以将初始化移至该字段。
如有必要,请转到 ReSharper>选项>代码检查>自定义模式可编辑模式或配置检查严重性。