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

デリゲートをインスタンス化する多くの方法の 1 つにすぎません

例えば:

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 に答える