Mam następujący kod:Dlaczego ReSharper mówi mi "niejawnie przechwycone zamknięcie"?
public double CalculateDailyProjectPullForceMax(DateTime date, string start = null, string end = null)
{
Log("Calculating Daily Pull Force Max...");
var pullForceList = start == null
? _pullForce.Where((t, i) => _date[i] == date).ToList() // implicitly captured closure: end, start
: _pullForce.Where(
(t, i) => _date[i] == date && DateTime.Compare(_time[i], DateTime.Parse(start)) > 0 &&
DateTime.Compare(_time[i], DateTime.Parse(end)) < 0).ToList();
_pullForceDailyMax = Math.Round(pullForceList.Max(), 2, MidpointRounding.AwayFromZero);
return _pullForceDailyMax;
}
Teraz Dodałem komentarz na linii, która ReSharper jest sugerujących zmianę. Co to oznacza lub dlaczego musiałoby zostać zmienione? implicitly captured closure: end, start
MyCodeSucks popraw poprawną odpowiedź: błąd kevingessner (jak wyjaśniono w komentarzach) i oznaczenie jako zaakceptowane wprowadzi użytkowników w błąd, jeśli nie zauważą odpowiedzi Konsoli. – Albireo
Możesz również zobaczyć to, jeśli zdefiniujesz swoją listę poza próbą/catch i wykonasz całe swoje dodawanie w try/catch, a następnie ustawisz wyniki na inny obiekt. Przeniesienie definicji/dodanie w try/catch pozwoli GC. Mam nadzieję, że ma to sens. –