1
public delegate void HandlerDelegate(int val);

public class Process
{
    public static void Execute(HandlerDelegate del)
    {
        del(5);
    }
}

class Program
{
    static void Main(string[] args)
    {
       //HandlerDelegate handler = Task; normally I would do this first
        Process.Execute(Task); // but this works - how?
    }

    public static void Task(int val)
    {
      Console.WriteLine(val);
    }         

}

我知道委托是对方法的引用,但是我如何能够将看起来像方法名称的东西传递给接受委托作为其参数的方法?

4

1 回答 1

2

它只是实例化委托的众多方法之一

例如:

public delegate void Del<T>(T item);//delegate
public void Notify(int i) { }//instance method

使用Notify方法实例化上述委托Del的不同方法

Del<int> d1 = new Del<int>(Notify);

或者

Del<int> d2 = Notify;

更多信息在这里

于 2012-07-07T05:34:59.703 回答