委托,从字面上,非常让人费解,但实际上,委托就是带类型的
函数指针,方便编译器识别、限定和查错。
如果从javascript语言的角度,根本没有这么复杂的概念,比如下面这段:
function a1(name){
alert("a1 "+name)
}
function a2(name){
alert("a2 "+name)
}
var b;
b = a1; //把a1赋值给b
b("nio")
b = a2; //把a2赋值给b
b("nio")
而用C#来写,就比较啰嗦了,忍不住吐槽一下。
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
public delegate void b(string name);
void Start () {
b b1 = a1;
b b2 = a2;
b1("nio");
b2("nio");
}
private static void a2(string name) {
Debug.Log("a2 "+name);
}
private static void a1(string name) {
Debug.Log("a1 "+name);
}
}
或者换一下写法: