4

考虑以下:

第一种方法:

public void f3()
{
f2();
f1();
}

和这个 ...

第二种方法:

    class Sample
{
    public delegate void MyDelegate(string s);
    MyDelegate obj;

    public Sample()
    {
        obj += new MyDelegate(input);
        obj+=new MyDelegate(something);
        obj += new MyDelegate(someStaticMethod);
    }
}

当我调用 f3() 时,它将调用其中列出的函数......当我调用委托时也会发生同样的情况......所以当我可以使用第一种方法时,委托处理某些事件的用途是什么......第一种方法也封装了方法调用..

4

2 回答 2

6

在委托的情况下,未指定附加函数的调用顺序。

此外,您可以将任意数量的函数附加到它,即使在运行时,也可以从其他对象,而不仅仅是第一种方法中的硬编码函数。委托有更广泛的用途。

于 2012-06-27T12:50:38.117 回答
1

第一种方法是静态的。委托方法允许您或调用者确定稍后调用什么。

于 2012-06-27T12:55:52.213 回答