Unity学习笔记:委托和Lambda表达式用法

委托是一类行为抽象。是方法的引用,是一种数据类型

委托可以实现对方法的【间接】调用! 灵活=维护性好!

委托的定义:委托是一种数据类型;委托代表的是方法,当调用委托时就是调用了这个方法。

【委托能存储方法的地址{ 引用}】间接调用】

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoDelegate1
{
    //调用端
    class DelagateDemo1
    {
        static void Main(string[] args)
        {
            //步骤2:实例化委托(绑定f1方法)
            Handler handlerObj = new Handler(F1);
            //绑定A类的方法new Handler(A.F);

            //步骤3:调用委托
            handlerObj();
        }
       static  public void F1()
        { 
       
       }
       

       
    }
    //定义端
    //步骤1:声明委托,定义委托
    delegate void Handler();
    //delegate int CalHandler(int a, int b);
    class A
    {
        public static void F()
        {
            Console.WriteLine("委托的使用步骤");
        }

    }
   
    
}

使用案例↓

namespace 事件的使用案例_猫和老鼠
{
    class Program
    {
        static void Main(string[] args)
        {
            //猫 mao = new 猫();
            //老鼠 laoshu = new 老鼠();
            //mao.叫();
            //laoshu.逃跑();

            猫 mao = new 猫();
            老鼠 laoshu = new 老鼠();
            //步骤2:注册事件
            mao.叫+=new Handler(laoshu.逃跑);//添加老鼠跑行为
            //mao.叫-= laoshu.逃跑;
            //步骤4:
            mao.Notify();

            Console.Read();
        }
    }
    //1.1 定义一个委托
    delegate void Handler();//定义一个委托
    class 猫
    {
        //public void 叫()
        //{
        //    Console.WriteLine("miaomiao");
        //}
        //步骤1.2:定义事件
        //public event Handler 叫;
        public Handler 叫;
        //步骤3:触发事件 固有的写法
        public void Notify()
        { 
            if(叫!=null)//判断事件有没有执行
            {
                Console.WriteLine("miaomiao");
                叫();//调用事件的方法
            }
        }

    }
    class 老鼠
    {

        public void 逃跑()//老鼠逃跑行为
        {
            Console.WriteLine("jiji。。。。");
        }
    }
}

多播委托:一个委托对象关联多个方法 只返回最后方法的结果↓

所以:委托有返回值不适合多播执行!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值