[当我在C#中使用局部函数时,我想保持它们的纯净而不依赖于捕获局部变量。由于名称冲突,由于无法将参数的名称与函数外部的局部变量相同,因此,我想在名称前加上下划线以为此制定通用的工作策略。
bool MyLocalFunction(string _str)
{
//...
}
var str = "";
var isValid = MyLocalFunction(str);
是否可以使ReSharper在所有局部函数中强制执行此命名,同时不影响常规方法中参数的命名?我在设置中找不到该选项。
如果使用的是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配置为对本地方法参数使用命名样式。