Resharper Initialize 来自构造函数的字段在 2017.1 中不可用
Posted
技术标签:
【中文标题】Resharper Initialize 来自构造函数的字段在 2017.1 中不可用【英文标题】:Resharper Initialize field from constructor not available in 2017.1 【发布时间】:2017-10-09 20:17:19 【问题描述】:添加字段后,我可以按 Ctrl + Enter 并选择 Initialize field from constructor
。如果没有声明,它会向现有 ctor 添加一个参数或使用该参数创建一个新 ctor。
我想知道这只是新版本的 Resharper 2017.1 还是旧版本的 VS 2013? 我让它在 VS 2015 和 Resharper 2016.3 上工作。但是当我在 VS 2013 和 Resharper 2017.1 中按 Ctrl + Enter 时它没有出现。
【问题讨论】:
【参考方案1】:ReSharper 2017.1 Help 声明如下:
生成类型构造函数
重新锐化 |编辑 |生成代码 |构造函数
Alt+插入 |构造函数
ReSharper_GenerateConstructor
构造函数生成向导会创建一个非默认构造函数,该构造函数接受选定字段、属性和自动属性的参数。
所有生成的构造函数都遵循相同的模式,其中:
构造函数中包含的每个字段、属性或自动属性都使用参数进行初始化。
参数名称来源于对应字段或属性的名称。
如果有非默认基类构造函数,则将所需参数添加到生成的构造函数中,并传递给基类构造函数。
提示您可以通过键入
ctor
(不带参数)、ctorf
(带有初始化所有字段的参数)或ctorp
(带有初始化所有属性的参数)来快速生成构造函数。提示您可以在代码编辑| 设置常用代码生成选项。 ReSharper 选项的成员生成页面。
【讨论】:
我的问题不是关于生成一个演员。问题是关于通过添加参数来修改现有的。 我不需要生成构造函数,我需要通过现有构造函数添加字段初始化,或者如果没有构造函数,则使用字段初始化创建一个新的构造函数!!!这在 VS2015 和 Resharper 2016.3 中运行良好。我从未使用过 Alt + Ins |构造函数,我相信这是一种无用的功能。经常发生依赖我一一添加的情况。我需要一次添加 2 个或更多依赖项是非常罕见的。创建构造函数后,我不希望它重新创建,我只想为要添加的其他新字段添加初始化。 有人知道如何启用此功能吗? 我也有兴趣了解这个问题的解决方案。再次注意,问题不在于构造函数的生成,而是现有属性的构造函数字段添加。【参考方案2】:我发现了另一个重构灯泡(快速操作菜单 Ctrl+。)(至少在 VS 2022 的新版本 resharper 中)有一个菜单“将参数添加到 XXX.ctor”
【讨论】:
以上是关于Resharper Initialize 来自构造函数的字段在 2017.1 中不可用的主要内容,如果未能解决你的问题,请参考以下文章
如何区分消息是来自 ReSharper 还是 Visual Studio