Resharper - 在进行代码清理时保留命名参数

时间:2015-07-08 16:28:12

标签: c# resharper named-parameters resharper-9.0

我们采用了一种惯例,即在使用"非显而易见的"来调用C#函数时。参数,我们使用命名参数,即使它没有必要。

E.g。

obj.Process(save: true)

而不是

obj.Process(true)

虽然这是不必要的,但是当浏览代码以查看正在发生的事情时,它会变得更容易,特别是使用布尔值或幻数。

但是,resharper的代码清理有习惯删除这些。我还没有办法告诉它保留命名参数 - 有吗?

5 个答案:

答案 0 :(得分:13)

虽然你可以通过@EricWalker所说的来实现它,但我想提出另一个选择。

您可以启动ReSharper选项,查找 Inspection Severity 然后转到 Redundant显式参数名称规范并将其更改为不显示。这样,您就不会失去删除冗余代码提供的所有其他良好清理(例如删除全名限定符)。

答案 1 :(得分:1)

您正在寻找的设置位于Code Cleanup \ C#\ Remove code redundancyancies

我知道这可能不是您希望的答案,但您可以通过取消选中该设置来停止删除参数名称(同时留下所有其他冗余。)

您可以在代码清理中设置不同的配置文件来解决此问题,但是您可以更好地向JetBrains人员寻求解决方案。

HTH,
埃里克

答案 2 :(得分:1)

在ReSharper 2018.1中

有两个相关步骤。您可能会希望两者都做,但这取决于您要如何配置ReSharper。

首先,在Resharper -> Options -> Code Inspection -> Inspection Severity中,禁用“对文字值使用首选参数样式”代码样式。 (对于布尔值,“ [..]代表文字值”是相关设置,尽管我选择禁用所有这些值。)

inspection-severity

此设置还链接到ReSharper -> Options -> Code Editing -> Code Style -> Arguments设置,因此现在应将其自动更改为“不显示”,而不是“提示”:

code-style-hints

第二,由于“应用参数样式(命名与位置)”,无法使用默认的ReSharper代码清除配置文件-必须在代码清除配置文件中禁用此选项。

code-cleanup-settings

答案 3 :(得分:1)

要在方法调用中显示参数名称,请转到:

ResharperOptionsCode EditingC#Syntax StyleArguments

然后将所有下拉值设置为“命名参数”。

此外,选中“跳过单个参数” 以仅在有多个参数的情况下显示该方法的命名参数。

enter image description here


上述方法已在 Resharper 版本2020.2.4

中得到验证

答案 4 :(得分:0)

<强>更新

从v2017.1.3(2017-08-28)

开始,此解决方案似乎不再适用

我目前正在使用ReSharper v2017.1(2017-06-01),看来JetBrains还没有解决这个问题。

正如@Colin Harkness所注意到的,目前是保留&#34;命名参数的最后手段&#34;是设置选项&#34;命名表达式(变量,属性,方法等)&#34; to&#34;命名参数&#34;。

这当然不是最好的出路。

enter image description here

<强>更新

我在JetBrains发现了一个小技巧&#39;论坛。 您可以通过在文件顶部添加此行代码来取消将命名参数视为冗余。

// ReSharper disable ArgumentsStyleNamedExpression

您必须在ReSharper设置中进行一些小配置。为了保持 // ReSharper禁用ArgumentsStyleNamedExpression 的自动添加,我已将此指令添加到文件头文本,如图所示。 2。

enter image description here 图2 - 添加ArgumentsStyleNamedExpression规则

之后,您必须检查代码清理配置中的 更新文件标题 选项,如图2所示。 3

enter image description here 图3 - 检查&#34;更新文件头&#34;选项

在这种情况下,当代码清理开始时,它首先添加 ArgumentsStyleNamedExpression 规则,并将代码样式应用于文件。

添加此规则后,您可以转到 工具|选项|环境|字体和颜色| ReSharper参数标识符 并更改此案例的突出显示颜色,以便在视觉上区分 参数 参数名称 ,如图4所示。

enter image description here

图4 - 突出显示的参数名称

不幸的是,这种保持争论的方式&#39;名称并不总是有效(ReSharper可以有选择地保留/删除参数名称)。