应该添加或删除这些参数
本文关键字:参数 删除 添加 | 更新日期: 2023-09-27 18:36:47
当Resharper与自己争论时,人们如何知道哪个角色应该更可信?
我想我已经找到了一些确实混淆了 Resharper 的代码(这显然是一个非常不寻常的情况 - 使用它一天后,我认为 Resharper 是蜜蜂的膝盖/自液化面包以来最伟大的东西,等等)。
使用以下代码行:
ICryptoTransform Encryptor = RijndaelCipher.CreateEncryptor(SecretKey.GetBytes(32), SecretKey.GetBytes(16));
Resharper告诉我"添加参数名称'rgbkey'",然后"添加参数名称'rgbIV'"
因此,该行是:
ICryptoTransform Encryptor = RijndaelCipher.CreateEncryptor(rgbKey: SecretKey.GetBytes(32), rgbIV: SecretKey.GetBytes(16));
但是,当我再次运行Resharper时,它说:
"冗余参数名称规范" - "删除参数名称规范"(rgbkey)(然后是 rgbIV)。
不过,似乎无论哪种方式都可以正常工作...
显式参数命名在强制参数上是可选的,因此两种形式都是"正确的",问题是你更喜欢哪种?就像vcsjones说的那样,Resharper只是给你一些重构选项来适应你的喜好。
Resharper告诉我
其实不然。R# 传达给用户的事情(广义上)有两类:它认为用户应该做的事情,以及用户可能想要做的事情,它可以促进更快地完成。
第一个示例:
var i = 4;
i = 5;
DoSomething(i);
4
分配将生成"未使用分配"检查,左边距中有一个灯泡图标,提供快速修复操作来修复它(通过删除分配)。
第二个示例:
if ((new Random()).Next() > 5)
{
DoSomething();
}
else
{
DoSomethingElse();
}
将光标定位在if
上将在左边距中生成一个铅笔图标,提供反转if
的上下文操作。它不是说你应该 - 而是说,"嘿,如果你想这样做,只需选择这个菜单项,我会为你做"。
添加参数名称属于第二类,即上下文操作。如果您不想被提供它,您可以在 ReSharper | Options | Code Editing | C# | Context Actions
.对于代码检查,弹出菜单本身提供了更改检查严重性的机会;或者你可以在ReSharper | Options | Code Isnpection | Inspection Severity
中查看所有这些.
就个人而言,我认为我从未使用过一些上下文操作(例如"转换为十六进制"),但我认为还有其他一些对于快速编码非常宝贵的(例如,在?:
和if
之间切换以及反转的各种组合)