Resharper 自定义模式更改方法名称

Posted

技术标签:

【中文标题】Resharper 自定义模式更改方法名称【英文标题】:Resharper custom patterns change method name 【发布时间】:2014-04-25 11:31:40 【问题描述】:

我想更改方法签名

public static async Task Load()

public static async Task LoadAsync()

如何在 ReSharper 中定义自定义模式?

【问题讨论】:

不知道为什么这被否决...我会尽快发布答案。 【参考方案1】:

如果我理解正确,您想定义一个自定义模式以将async Task Method() 签名更改为async Task MethodAsync()。如果是这样,这可以通过使用自定义模式来实现!

为此,请转到 ReSharper 的选项,然后转到 Code Inspection → Custom Patterns

点击Add Pattern

在新对话框中,确保选中Replace

完全按照下图中显示的方式键入搜索和替换模式。根据您的 ReSharper 版本,占位符参数应自动​​显示。如果没有,请按添加占位符按钮。

双击 method 占位符,并添加以下正则表达式:\b\w+(?<!Async)\b - 这仅告诉匹配方法名称不以 Async 结尾。

Pattern Severity 组合框中选择Show as HintShow as Suggestion,具体取决于您的偏好。

点击Add,然后点击保存(或保存到→团队共享,将此图案存储在团队共享设置中,供所有队友使用)。

ReSharper 现在将标记所有尚未以 Async 结尾的 public async Task 方法:

您现在可以按 Alt-Enter 快速修复它!

【讨论】:

非常,非常感谢你的回答,我再想想如果是private static Task public Task 怎么定义? 您可以创建另一个模式,几乎相同,但使用 private 关键字。 奇怪,它应该匹配任何参数,无论如何。 $parameters$ 占位符应该考虑 0 个或多个参数,因此它适用于 Foo()Foo(string arg),例如。你的占位符定义正确吗? @IgalTabachnik 重要提示:搜索模式中的async 是多余的,Resharper 不匹配它。此模式还将突出显示public Task Load() (在这种情况下不一定不好) 这太棒了,但是,您是否知道我如何在整个解决方案中找到共享至少 2 个相同参数的任何方法?

以上是关于Resharper 自定义模式更改方法名称的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义 Resharper 的“代码清理”以​​更改 C# 中的文档标题规则

Java如何获取方法参数中的名称

Birt支持自定义导出中文名称

Linux更改IP和主机名的方法

多个图片的文件名可以自定义命名并修改后缀名吗?

VS2019 还原Resharper菜单位置