C#委托机制(1):什么是委托?

简介

在C#中,最基本的内容不外乎数据和函数。就象做菜一样,数据是原料,函数是操作。C#中提供了多种数据类型用于表示数据,同时提供了函数,用于定义对数据的操作。举例来说,以下函数定义了一个基本操作函数将传入字符串以指定格式输出。

public void Show(string message)
{
	Console.WriteLine("[{0}] {1}", DateTime.Now.ToString(), message);
}

Show函数接收到传入数据,然后调用Console.WriteLine进行显示。笔者特别加粗了“数据”,因为在这个大家以为常的过程中,我们传输的都是数据。既然数据和操作是不可分割的,那么我们就有了这样的一个问题:除了数据,我们是否也可以传递函数

委托解释

答案显然是肯定的。除了数据,在C#中也可以传递函数。为了表示函数,C#引用了一个新的概念就是委托。用最通俗的话来说,委托就是对函数的封装,用于代表某个函数,从而便于在函数传参中进行调用。以下是一个传参的示例,用于演示数据和函数一起传送。

public override void Test()
{
	Process(Show, "A delegate demo");
}

public void Process(Action<string> act, String s)
{
	act(s);
}

public void Show(string message)
{
	Console.WriteLine("[{0}] {1}", DateTime.Now.ToString(), message);
}

以上所示,我们定义了一个Process函数,它接受两个参数,第一个是函数,第二个是数据。在Test()函数中,即可将Show函数作为参数进行传递。

实现主要基于Action类,具体细节,见下一讲。

小节

本节主要介绍了委托的概念,即可以在函数的参数中,将函数进行参数进行传递及调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值