下面的代碼工作,但爲什麼?當我在循環中調用匿名方法時,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;
}