看看这个程序:
static class Program
{
static void Main()
{
GetLinks();
Console.WriteLine("Program failed!");
}
static IEnumerable<string> GetLinks()
{
throw new Exception();
foreach (var item in new string[] { })
yield return item;
}
}
这很奇怪,但是这个程序的结果是Program failed!
,这意味着该GetLinks
函数甚至没有被调用。
这种行为的解释是什么?