我有以下代码:为什么ReSharper告诉我“隐式捕获闭包”?
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;
}
现在,我已经添加了对ReSharper是在暗示改变该行的注释。这是什么意思,或为什么需要改变?
MyCodeSucks请修复接受的答案:kevingessner的一个错误(如评论中所解释的)并将其标记为已接受将误导用户,如果他们没有注意到控制台的答案。 – Albireo
如果你在try/catch之外定义你的列表,并且在try/catch中完成所有的添加,然后将结果设置为另一个对象,你也可以看到这个。在try/catch中移动定义/添加将允许GC。希望这是有道理的。 –