我可以设置局部函数中参数的命名方式吗?

问题描述 投票:0回答:1

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

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

var str = "";

var isValid = MyLocalFunction(str);

是否可以使ReSharper在所有局部函数中强制执行此命名,同时不影响常规方法中参数的命名?我在设置中找不到该选项。

resharper
1个回答
0
投票

如果使用的是C#8,则可以使用static本地方法。例如:

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配置为对本地方法参数使用命名样式。

© www.soinside.com 2019 - 2024. All rights reserved.