指定当前委托对象

时间:2013-12-19 16:25:19

标签: c# delegates

例如,使用这样的调度程序类:

class Scheduler
{
    public void Add(DateTime time, Action action);
    ...
}

我可以计划一个像这样的简单动作:

Scheduler scheduler= new Scheduler();
scheduler.Add(someTime, delegate() { Console.WriteLine("Done!"); });

现在我希望我的行动稍后重新计划,所以我写下这个:

scheduler.Add(someTime, delegate() { Console.WriteLine("Done!"); scheduler.Add(someTimeLater, !this current action!); });

但我怎么能指定!这个当前行动!或以另一种方式编码?

1 个答案:

答案 0 :(得分:2)

您需要将其分配给变量才能执行此操作:

Action action = null;
action = () => 
{
    Console.WriteLine("Done!"); 
    scheduler.Add(someTimeLater, action);
};
scheduler.Add(someTime, action);