Code inspection: Local function can be made static
Static local functions are designed to be independent of the state of the enclosing scope. Therefore, if ReSharper detects a local function that does not use any variables from the enclosing scope, it suggests making such function static.
This way ReSharper infers the intended use of the function and makes sure that this intent is clearly visible to those who will read or modify the code later.
class Test
{
void Foo()
{
Console.WriteLine(LocalFunction1("test "));
// Can be made static because no local variables are captured
string LocalFunction1(string str) => str.Trim(' ');
const string test = "test ";
Console.WriteLine(LocalFunction2());
// Cannot be made static because the variable 'test' is captured
string LocalFunction2() => test.Trim(' ');
}
}
Last modified: 11 February 2024