委托,从字面上,非常让人费解,但实际上,委托就是带类型的
函数指针,方便编译器识别、限定和查错。
如果从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);
}
}
或者换一下写法:
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
public delegate void b(string name);
public b b1;
void Start () {

本文探讨了C#中的委托,将其比喻为函数指针,并通过对比JavaScript的简洁性,展示了C#中使用委托的不同方式,包括Action的使用场景,揭示了委托在不需要返回值时的简便性。
最低0.47元/天 解锁文章
1119

被折叠的 条评论
为什么被折叠?



