无法找到代码输出,可以理解为什么

时间:2017-02-13 12:27:09

标签: c#

嗨我有一个代码,我不明白应该是他的输出。

这是代码:

delegate void Employee();
static void Main()
{
                IList employees= new List<Employee>();

                for(int i=0;i<3;i++)
                {
                    employee.Add( () => Console.Write(i));
                }
                foreach(var employee in employees)
                {
                    employee();
                }
}

任何人都可以帮我这个吗?什么是输出,你是如何找到它的?

1 个答案:

答案 0 :(得分:0)

您的代码不能编译

我认为这就是你的意思:

delegate void Employee(); // Note that this is equivalent to the Action delegate

static void Main(string[] args)
{
    IList employees = new List<Employee>();

    for (int i = 0; i < 3; i++)
    {
        employees.Add(new Employee(() => Console.Write(i)));
    }

    foreach (Employee employee in employees)
    {
        employee();
    }
}
由于你的3位代表i变量为captured,蒂姆指出打印333。

Employee不是委托的理想名称,起初我认为你有一个名为Employee的类和另一个名为employee的集合,但似乎你唯一需要的是委托实例的集合。