委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法(或多个方法)。通俗的说,委托是一个可以引用方法的对象,当创建一个委托,也就创建一个引用方法的对象,进而就可以调用那个方法,即委托可以调用它所指的方法。
伪代码
//第一步:定义委托类型(只是比函数多了个delegate)
public delegate void Callback();
public delegate void Callback(T arg1);
class A
{
//第二步:声明委托对象
private Callback<Transform> callback;
// 第三步:将方法与委托关联起来
public void SetCallback(Callback<Transform> _callback)
{
callback = _callback;
}
public void OnTriggerEnter(Collider other)
{
// 调用委托实例
callback(other.transform);
}
}
class B
{
private A a;
public void SetACallback()
{
a.SetCallbck(OnTriggerEnterHandler);
}
private void OnTriggerEnterHandler(Transform other) { }
}