Aviso ReSharper - Acesso ao Encerramento Modificado
Eu tenho o seguinte código:
string acctStatus = account.AccountStatus.ToString();
if (!SettableStatuses().Any(status => status == acctStatus))
acctStatus = ACCOUNTSTATUS.Pending.ToString();
Observe que account.AccountStatus é um enum do tipo ACCOUNTSTATUS. Na segunda linha, o ReSharper está me dando o aviso "Access to Modified Closure" para acctStatus. Quando faço a operação recomendada,Copiar para a variável local, modifica o código para o seguinte:
string acctStatus = realAccount.AccountStatus.ToString();
string s = acctStatus;
if (!SettableStatuses().Any(status => status == s))
acctStatus = ACCOUNTSTATUS.Pending.ToString();
Por que isso é melhor ou preferível ao que eu tinha originalmente?
EDITAR
Também recomendaEnvolva a variável local na matriz, que produz:
string[] acctStatus = {realAccount.AccountStatus.ToString()};
if (!SettableStatuses().Any(status => status == acctStatus[0]))
acctStatus[0] = ACCOUNTSTATUS.Pending.ToString();
Isso parece francamente maluco para mim.