【发布时间】:2012-05-18 19:29:29
【问题描述】:
下面的代码可以工作,但为什么?当我在循环中调用匿名方法时,x 和 y 的到来/保存在哪里。
谢谢
static void Main(string[] args)
{
int x=1;
int y=2;
var dic = GetDic(x, y);
for (int i = 0; i < 5;i++ )
{
System.Console.WriteLine(dic[i].Invoke().ToString());
}
}
private static Dictionary<int, Func<int>> GetDic(int x, int y)
{
var dic = new Dictionary<int, Func<int>>()
{
{0,()=>{return y;}},
{1,()=>{return x;}},
{2,()=>{return x+y;}},
{3,()=>{return x-y;}},
{4,()=>{return y-x;}},
};
return dic;
}
【问题讨论】:
标签: c# anonymous-function anonymous-methods