我发现了一件有趣的事情.c#,.NET 4.0.我有一个代表IDisposable接口的类.在上面提到的类中我有一个函数,返回IEnumerable并返回yield.在调用时,controll跳过该函数.请勿介入.示例:
class Program
{
static void Main(string[] args)
{
using (DispClass d = new DispClass())
{
d.Get2();
d.Get1();
}
}
}
public class DispClass: IDisposable
{
public DispClass()
{
Console.WriteLine("Constructor");
}
public void Dispose()
{
Console.WriteLine("Dispose");
}
public int Get1()
{
Console.WriteLine("Getting one");
return 1;
}
public IEnumerable<int> Get2()
{
Console.WriteLine("Getting 1");
yield return 1;
Console.WriteLine("Getting 2");
yield return 2;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:"构造函数""获取一个""处理"
"获得1","获得2"在哪里?如果没有收益率返回并返回本地列表,我可以看到这些......
请解释!