static IEnumerable<Customer> GetCustomersYield(int count)
{
for (int i = 0; i < count; i++)
{
yield return new Customer(i, $"阿莱克斯{i}", "广州");
if (i > 3)
{
yield break;
}
}
老师,对于课上GetCustomersYield()这个例子,既然yield return实现了用时再加载,为什么第一加载后,返回的customers里的count就是1000000了?C#编译器在预处理阶段根据代码做了简单的推断?
为了证实这个猜想,我添加了“yield break;”的代码,也就是实际只能迭代0~4共5次。但是count仍然是1000000。看来预处理并没有处理/理解我加的代码。
请教下这个count变为1000000的原理是什么呢?谢谢。