假设SomeMethod
的签名为
public IEnumerable<T> SomeMethod<T>();
这两者之间有什么区别吗?
foreach (T tmp in SomeMethod<T>()) { ... }
并且
IEnumerable<T> result = SomeMethod<T>();
foreach (T tmp in result) { ... }
换句话说,
SomeMethod<T>
的结果会在第一条语句上被缓存还是在每次迭代时重新计算?