tengo el siguiente código:ReSharper Advertencia - El acceso a Cierre Modificado
string acctStatus = account.AccountStatus.ToString();
if (!SettableStatuses().Any(status => status == acctStatus))
acctStatus = ACCOUNTSTATUS.Pending.ToString();
Tenga en cuenta que account.AccountStatus es una enumeración de tipo accountstatus. En la segunda línea, ReSharper me está dando la advertencia "Acceso al cierre modificado" para acctStatus. Cuando hago la operación recomendada, Copiar a la variable local, modifica el código por lo siguiente:
string acctStatus = realAccount.AccountStatus.ToString();
string s = acctStatus;
if (!SettableStatuses().Any(status => status == s))
acctStatus = ACCOUNTSTATUS.Pending.ToString();
¿Por qué es mejor o preferible a lo que tenía originalmente?
EDITAR
También recomienda Wrap variable local en conjunto, que produce:
string[] acctStatus = {realAccount.AccountStatus.ToString()};
if (!SettableStatuses().Any(status => status == acctStatus[0]))
acctStatus[0] = ACCOUNTSTATUS.Pending.ToString();
Esto parece francamente loco a mí.
Verifique esta SO La pregunta y la respuesta aceptada, pueden ser útiles. http://stackoverflow.com/questions/235455/access-to-modified-closure – Chuck