我有以下代碼:爲什麼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。希望這是有道理的。 –