首页 > 解决方案 > 使用 ReSharper 可以选择规则以确保返回的值是 C# 的文字或变量

问题描述

这个问题是关于 ReSharper 是否支持这样的事情以及如何打开这样的规则检查。这不是关于特定编码风格或标准选择或优点的问题。

我正在尝试自动检查(最好是替换)各种 C# 返回代码模式。特别是我希望检测以下内容并让 reshaper 提出提示/建议

return SomeFunc(someArgs);
return condition ? litteralA : litteralB;
return someObject.SomeFunction();

以下不需要突出显示(但我会接受他们被当作无辜的旁观者)

return someObject.SomePropertyOrField;

不得错误地检测/突出显示以下内容(理想情况下,ReSharper 会尽可能进行简单的转换)

var someVal = SomeFunc(someArgs);
return someVal;

var result = condition ? litteralA : litteralB;
return result;

var state = someObject.SomeFunction();
return state;

return SomeClass.SomeConst;
return true;
return 0;
return LocalConst;

ReSharper 的最新版本可以做到这一点,如果可以,我该如何配置它来做到这一点

我无法从功能列表或查看 ReSharper 试用版的检查选项中看到我将如何做到这一点;但我不知道如果确实存在这样的规则会被称为什么。如果这实际上是可能的,那么我想在编写我的代码检查实用程序之前知道。

标签: c#resharpercode-inspection

解决方案


我不打算讨论你为什么想要这个;我相信你有一个理由(如果你与我们其他人分享这将是很棒的),但这里有一个解决方案:

您可以Custom Patterns像这样使用(选项|代码检查|自定义模式):

ReSharper 自定义模式

在此处查看更多信息:ReSharper - 结构搜索和替换


推荐阅读