委托概述

本文详细介绍了如何在C#中定义和使用委托,包括委托的基本语法、实例化过程以及通过实例调用方法的过程。通过具体的代码示例展示了委托作为函数指针的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义一个委托的语法:

[public/protected/private] delegate returnType delegateName(paramtype param1,…)

private/protected/private是限定词,

delegate是申明一个委托的关键词,

returnType是一个返回类型,

delegateName是一个你给委托起的名字,

paramtype param1…这个是参数列表。

委托定义就是在一个函数定义中间加入一个 delegate的关键词。它的作用类似于你申明一个类:

public class ClassName {…}

创建一个委托的实例:

[public/protected/private] delegateName deleInstanceName = new delegateName(MethodName)<br />这个类似于实例化一个类,public ClassName instancename = new ClassName(…),

注意:MethodName方法要和delegateName的签名一致。

什么是签名一致,就是说 MethodName的参数列表,返回值要分别和returnType、(paramtype param1,…)一致。

举个例子来说明下:

public delegate string DelegateDemo(string name, int age);

比如我们如上定义了一个委托,就写法来说,其实就是在函数 string DelegateDemo(string name, int age)前面加了一个delegate的关键字,下面我们来用创建一个函数:

public string AgentDemo(string name, int age)

{

string rev = “”;

    return rev;

}

这个函数是做参数传递给一个DelegateDemo实例的,

接下来创建一个DelegateDemo的实例:

DelegateName instanceDemo = new DelegateName(AgentDemo);
这时要说到一致了,即AgentDemo和声明委托时的DelegateDemo(我们姑且将delegate去掉)这两个函数的返回值,参数列表要相同。终于说完了,不知道看的人明不明白。
接下来,我们可以使用这个委托了(调用一个委托),如下:
string name = “cshape”;
int age = 20;
instanceDemo(name, age);
当instanceDemo执行时,会执行AgentDemo函数,instanceDemo相当于C里的一个函数指针,现在这个指针指向AgentDemo的函数入口地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值