以下のコードは機能していますが、なぜですか? ループで匿名メソッドを呼び出すと、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;
}