У меня есть следующий код:
string acctStatus = account.AccountStatus.ToString();
if (!SettableStatuses().Any(status => status == acctStatus))
acctStatus = ACCOUNTSTATUS.Pending.ToString();
Обратите внимание, что account.AccountStatus - это перечисление типа ACCOUNTSTATUS. Во второй строке ReSharper дает мне предупреждение "Доступ к модифицированному закрытию" для acctStatus. Когда я делаю рекомендуемую операцию, скопируйте ее в локальную переменную, она изменит код на следующее:
string acctStatus = realAccount.AccountStatus.ToString();
string s = acctStatus;
if (!SettableStatuses().Any(status => status == s))
acctStatus = ACCOUNTSTATUS.Pending.ToString();
Почему это лучше или предпочтительнее того, что у меня было изначально?
ИЗМЕНИТЬ
Он также рекомендует Wrap local variable в массиве, который создает:
string[] acctStatus = {realAccount.AccountStatus.ToString()};
if (!SettableStatuses().Any(status => status == acctStatus[0]))
acctStatus[0] = ACCOUNTSTATUS.Pending.ToString();
Это кажется мне просто дураком.