C#里面的委托,说白了就是函数指针

本文探讨了C#中的委托,将其比喻为函数指针,并通过对比JavaScript的简洁性,展示了C#中使用委托的不同方式,包括Action的使用场景,揭示了委托在不需要返回值时的简便性。
摘要由CSDN通过智能技术生成
委托,从字面上,非常让人费解,但实际上,委托就是带类型的 函数指针,方便编译器识别、限定和查错。

如果从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);
	}
}

或者换一下写法:


                
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值