委托可以实现一对一对多对多的结构,我在代码中调用委托方法,委托方法进行一个或多个实例化,这些实例化的 对象再去调用形式相同(参数和返回值类型相同)的方法。举一个简单的例子:
其中首先我是定义了一个无返回值无参的委托方法test,之后我在start方法中分别定义了method0和method1两个实例化结果,对于method0是先赋值a方法,使用一次,再赋值b方法,再使用一次。对于method1则是赋值c方法,调用。
最终显示的结果就是,先后输出字母abc。
这是最简单的用法,对于有参和有返回值的类型区别不大。实际上委托是可以一个变量赋值多个方法的,就是使用+,但我不明白这在unity中会发挥什么实际作用。至于委托的好处,对于个人编程来说,我只找到了一条让我信服的理由:在两个不能直接调用的方法中作为桥梁,如:在多线程中的跨线程的方法调用就得用委托。
public delegate void test();
void Start()
{
test method0 = a;
method0();
method0 = b;
method0();
test method1 = c;
method1();
}
public void a()
{
print("aaaaaaaaaaa");
}
public void b()
{
print("bbbbbbbb");
}
public void c()
{
print("ccccc");
}