ReSharper 2017.2 Help

Code Inspection: Local variable has too wide declaration scope

ReSharper suggests moving the declaration of a local variable closer to its usage. If a variable is not used outside a block of instructions, it is a good practice to declare it within that block.

In the example, ReSharper suggests moving the declaration of tmpvar inside the for loop, where tmpvar is used.

Suboptimal codeAfter the quick-fix
private static char[] MyMethod(char[] x) { char tmpvar; for (int i = 0; i < x?.Length / 2; i++) { tmpvar = x[i]; x[i] = x[x.Length - 1 - i]; x[x.Length - 1 - i] = tmpvar; } return x; }
private static char[] MyMethod(char[] x) { for (int i = 0; i < x?.Length / 2; i++) { var tmpvar = x[i]; x[i] = x[x.Length - 1 - i]; x[x.Length - 1 - i] = tmpvar; } return x; }

If possible, ReSharper will automatically join the declaration and assignment, and according to the default preferences will change the explicit variable type to var when it applies this quick-fix.

Last modified: 12 October 2017

See Also