delegate,Action和Func区别和用法

在程序开发里,有一种很常见的思想,叫委托,顾名思义就是A委托B做A想做的事情,具体实现就是A定义好函数(实现A想做的),然后把该函数以一种特殊的形式告知B,B来调用,在.Net里,这种特殊形式的实现方式有三种,delegate,Action和Func,下面逐一说明用法,

string Translate(string str)
{
	return str.ToUpper();
}
delegate string Delegate(string str);
void Function()
{

}
void main()
{
	// delegate
	Delegate del = Translate;del("haha");
	// Action
	Action action = Function;action("haha");
	// Func
	Func<string, string> func = Translate;
	func("haha");
}

 
 从以上用法中,可以看出定义好的函数可以处理成引用,有了引用自然就可以通过传参告知委托对象; 

那么,以上三种形式有什么区别呢,delegate是C#的关键字,而Action和Func都是基于delegate的特殊用法,Action的返回值类型是void,Func通过泛型可以自定义返回值类型,但型参只能有一种,最后写一个用lambda表达式定义Func的方法,

Func<string, string> func = x => x.ToUpper();

谢谢!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值