如何通过委托函数传递参数

时间:2014-08-11 04:19:13

标签: c# function methods delegates

我正在尝试学习如何使用委托功能,而且在传递参数时我似乎遇到了问题。有人可以建议一个简单的方法吗?我已经在这里阅读了一些教程,但他们遇到了LINQ的复杂问题,我宁愿避免这样做。

public delegate void DelegateFunction(int levelType, string levelName);
public DelegateFunction delegateFunction;
public  void LoadMap(int levelType, string levelName)
{
    gameManager.levelType = levelType;
    gameManager.started = false;
    Application.LoadLevel(levelName);
}
void OnCollisionEnter2D(Collision2D collision)
{
    if(collision.gameObject.tag == "ZoneTransport")
    {
          delegateFunction+= LoadMap(0, "MainMap");//incorrect and will not compile
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用此类代码:

if(collision.gameObject.tag == "ZoneTransport")
{
    delegateFunction = LoadMap;
    delegateFunction(0, "MainMap");
}

虽然如果您正在使用代表,那么最好直接调用函数。