C# 无法将方法作为委托传递

C# 无法将方法作为委托传递,c#,delegates,C#,Delegates,我想通过这个方法 private void activityStreamDownloaded(TaskNotification tn) { //Logic } 代表ad=activityStreamDownloaded时;方法 public void AddNextTask(WebAPITask task, Delegate callback) { //Error: Callback is variable but is used like a method task.

我想通过这个方法

private void activityStreamDownloaded(TaskNotification tn)
{
    //Logic
}
代表ad=activityStreamDownloaded时;方法

public void AddNextTask(WebAPITask task, Delegate callback)
{
    //Error: Callback is variable but is used like a method
    task.OnExecuted += () => callback(task.TaskNotification);
}
像这样_taskList.AddNextTask new TaskObj,ad


为什么会发生这种情况?我如何解决这个问题?

正如注释中指出的,委托是一个抽象类。相反,尝试这样的事情

// declare an action type (basically a delegate with void return type)
Action<TaskNotification> callback = activityStreamDownloaded;


// update method signature to take an Action<TaskNotification>
public void AddNextTask(WebAPITask task, Action<TaskNotification> callback)

// this code should work now
_taskList.AddNextTask (new TaskObj(), callback);

我相信委托有一个名为Invoke的方法。不能像调用实际函数一样调用它们。它们是对象。您需要更具体地说明什么是委托类型。委托没有签名,因此您不能像那样调用它。它只是一个抽象基类。看来你需要Action@SriramSakthivel我在哪里需要它?将AddNextTask方法签名更改为public void AddNextTaskWebAPITask任务,操作回调。我猜,不知道task.TaskNotification属性是什么,我只能猜这么多: