我遇到了一个问题。我有这样的事情:

public class ListSorter : MonoBehaviour
{
    public delegate void MyDelegate();
    public static MyDelegate myDelegate;
    void Start ()
    {
        ListSorter.myDelegate += A(5);// <-- here I know i cant do it
        ListSorter.myDelegate += B;
        myDelegate(); //<-- how to call 2 different function with one delegate?
    }
    public void A(int iVar)
    {
        print(iVar);
    }
    public void B()
    {
        ///...
    }
}


如您所见,我已经知道我想要在哪里以及要拥有多少个参数。问题是,当函数A有一个参数而B没有一个参数时,如何调用那些函数A和B?

最佳答案

将函数调用包装在与目标类型匹配的匿名委托中(无参数,无返回值):

ListSorter.myDelegate += (() => A(5));
ListSorter.myDelegate += B;

10-01 17:45