我遇到了一个问题。我有这样的事情:
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;