Я видел здесь несколько похожих вопросов, но ни один из них, похоже, не был моей проблемой ...
Я понимаю (или думал, что понял) концепцию закрытия , и понять, что заставило Resharper пожаловаться на доступ к измененному закрытию, но в приведенном ниже коде я не понимаю, как я нарушаю закрытие.
Поскольку primaryApps
объявлен в контексте цикла for, primary
не изменится, пока я обрабатываю primaryApps
. Если бы я объявил primaryApps
вне цикла for, то, безусловно, у меня есть проблемы с закрытием. Но почему в приведенном ниже коде?
var primaries = (from row in openRequestsDataSet.AppPrimaries
select row.User).Distinct();
foreach (string primary in primaries) {
// Complains because 'primary' is accessing a modified closure
var primaryApps = openRequestsDataSet.AppPrimaries.Select(x => x.User == primary);
Resharper недостаточно умен, чтобы понять, что это не проблема, или есть причина, по которой закрытие является проблемой, которую я не вижу?