Resharper 我可以专门在本地函数中设置参数的命名样式吗?

Resharper 我可以专门在本地函数中设置参数的命名样式吗?,resharper,Resharper,当我在C#中使用局部函数时,我希望保持它们的纯净,而不依赖于捕获局部变量。由于名称冲突,我无法将参数命名为与函数外部的局部变量相同的名称,因此我希望在它们前面加下划线,以便对此有一个通用的工作策略 bool MyLocalFunction(string _str) { //... } var str = ""; var isValid = MyLocalFunction(str); 是否可以使ReSharper在所有本地函数中强制此命名,同时不影响常规方法中参数的命名?我在设置中找

当我在C#中使用局部函数时,我希望保持它们的纯净,而不依赖于捕获局部变量。由于名称冲突,我无法将参数命名为与函数外部的局部变量相同的名称,因此我希望在它们前面加下划线,以便对此有一个通用的工作策略

bool MyLocalFunction(string _str)
{
    //...
}

var str = "";

var isValid = MyLocalFunction(str);
是否可以使ReSharper在所有本地函数中强制此命名,同时不影响常规方法中参数的命名?我在设置中找不到该选项。

如果您使用的是C#8.0(.NET Core 3.x和.NET Standard 2.1),则可以使用。例如:

using System;

namespace ConsoleAppLocalFunction
{
    public static class Program
    {
        public static void Main()
        {
            var first = "Foo";
            var last = "Bar";
            Console.WriteLine(LocalMethod1("Test", "Message"));
            Console.WriteLine(LocalMethod2());

            static string LocalMethod1(string first, string last) => first + last;
            string LocalMethod2() => first + last;
        }
    }
}
运行此操作时,结果将为:

TestMessage

FooBar

LocalMethod1
将使用参数,但无法访问局部变量,
LocalMethod2
将使用局部变量


我认为您不能将ReSharper配置为对本地方法参数使用命名样式。

谢谢,不过我暂时还是用C#7。很遗憾,您可以只使用标准的非本地函数。