使用 ReSharper,您可以 select 一个规则来确保返回的值是 C# 的文字或变量

Using ReSharper can you select a rule to ensure that the returned value is either a literal or a variable for C#

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

我正在尝试自动检查(最好是替换)各种 C# return 代码模式。特别是我希望检测以下内容并让 resharper 生成 hint/suggestion

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

以下不需要强调(但我会接受他们被当作无辜的旁观者)

return someObject.SomePropertyOrField;

以下内容不得虚假detected/highlighted(如果可能,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 可以做到这一点吗?如果可以,我该如何配置才能做到这一点

我无法通过 the feature list 或通过查看 ReSharper 试用版的检查选项来了解如何做到这一点;但我不知道如果真的有这样的规则会叫什么。如果它实际上是可能的,那么我想在编写我的代码检查实用程序之前知道。

我不会深入探讨为什么你想要这个;我确定您有理由(如果您与我们其他人分享这会很棒),但这是一个解决方案:

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

在此处查看更多信息:ReSharper - Structural Search and Replace