【发布时间】:2012-09-30 07:06:18
【问题描述】:
有谁知道下面代码背后的原因是什么?这是在 VS2010 中通过 Web 测试生成的。
yield return someObject;
someObject = null;
我看到这个并认为这很奇怪,所以我想知道是否有人知道这是否会比让 someObject 坐在那里作为分配的内存获得某种收益。需要明确的是,有问题的行是第二条语句,因为收益率回报相当普遍。将延迟返回对象设置为 null 让我很头疼。
编辑:更多上下文。 “yield return”在返回 IEnumerable 的方法中执行,这导致延迟执行。 someObject 是一个方法范围的变量。
谢谢!
【问题讨论】:
-
谁知道?没有上下文(具体来说,知道
someObject是类成员还是本地成员)是不可能的。 -
谢谢,编辑了更多上下文!
-
为什么不直接粘贴到整个方法中?