C# 事件与委托

一、委托

1、什么是委托

 通俗易懂的理解:委托是函数(方法)的容器,可以理解为表示函数(方法)的变量类型,用来储存、传递函数(方法)。委托的本质是一个类,用来定义函数(方法)的类型(返回值和参数的类型)。不同的函数(方法)必须对应和各自"格式"一致的委托。

形象比喻:int num; num 可以当作参数,在函数中进行传递,

那么:委托 就是函数的类型,此时函数被当作参数,可以在其他函数中当作参数进行传递。

因为函数本身存在常规变量的参数,所以当函数作为参数传递的时候,一定要让函数申明格式和委托的定义格式参数和返回值上面要一 一对应。

2、委托的定义

语法糖:访问修饰符  delegate  返回值  委托名(参数列表);

如: public delegate void DelFun(string name);

定义了一个访问修饰符为public,无返回值,参数类型为string, 名字为DelFun的委托。

如:public delegate int DelFun2(int num);

定义了一个访问修饰符为public,返回值为int,参数类型为int,名字为DelFun2的委托。

委托一般定义在namespace(命名空间)和class(类)语句块中。

记忆法则:函数申明前面,加一个关键字delegate 则就是委托的定义。

3、委托的使用

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public delegate void MyFun();
public delegate int MyFun2(int value);

// 委托常用在:
//1 作为类的成员
//2 作为函数的参数
class Test 
{
    // 作为类的成员
    public MyFun fun;
    public MyFun2 fun2;

    // 委托作为函数的参数
    public void TestFun(MyFun fun, MyFun2 fun2) 
    {
        // 先处理一些别的逻辑 当这些逻辑处理完了,在执行传入的函数
        // 比如:
        int i = 1;
        i *= 2;
        i += 2;
        // 执行传进来的回调函数
        fun();
        fun2(i); 
    }
 
}
public class DelegateLearn : MonoBehaviour
{
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值