Могу ли я установить стиль именования параметров конкретно в локальных функциях? - PullRequest
0 голосов
/ 23 апреля 2020

Когда я использую локальные функции в C#, я бы хотел сохранить их чистыми и не зависеть от захвата локальных переменных. Поскольку я не могу назвать свои параметры так же, как локальные переменные вне функции, из-за конфликта имен я хотел бы добавить к ним подчеркивание, чтобы иметь общую рабочую стратегию для этого.

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

var str = "";

var isValid = MyLocalFunction(str);

Можно ли заставить ReSharper применять это именование во всех локальных функциях, не влияя на именование параметров в обычных методах? Я не могу найти эту опцию в настройках.

1 Ответ

1 голос
/ 24 апреля 2020

Если вы используете C# 8.0 (. NET Core 3.x и. NET Standard 2.1), тогда вы можете использовать stati c локальные функции . Например:

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 для использования стиля именования для параметров локального метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...