zoukankan      html  css  js  c++  java
  • C#委托

    委托(delegate)是C#1.0就出现的一个技术,委托就是将方法囊括其中,可以将委托看做一个类的接口,但是在通过Lambda表达式的加入后,委托的实现就像对容易了很多。

    委托的构成:4方面

    1.声明委托类型:就是定义delegate;

    2.必须有需要执行的代码:就是要注册到委托里的方法;

    3.创建委托实例:注册到委托;

    4.执行invoke委托实例;

    lambda表达式的出现就能简略后面2,3,4步,在实现委托的时候可以使用更加方便。

    using System;
    
    namespace DelegateAndEvent
    {
        //定义一个事件类
        public class MyEvent
        {
            //定义一个委托
            public delegate void MyDelegate();
            //定义一个事件
            public MyDelegate MyDelegateEvent;
            //定义一个触发事件的函数
            public void OnMyDelegateEvent()
            {
                //判断事件是否非空
                if (MyDelegateEvent != null)
                {
                    //执行事件
                    MyDelegateEvent();
                }
                //MyDelegateEvent?.Invoke(); //简化的判断和执行
            }
        }
        class Program
        {
    
            //输出一串字符
            public static void putOutChar()
            {
                Console.WriteLine("I was fired");
            }
            //输出第二串字符
            public static void putOutChar2()
            {
                Console.WriteLine("I was fired22222");
            }
    
            static void Main(string[] args)
            {
                //实例化MyEvent2类
                MyEvent myEvent = new MyEvent();
                //注册一个事件
                myEvent.MyDelegateEvent += new MyEvent.MyDelegate(putOutChar);
                myEvent.MyDelegateEvent += new MyEvent.MyDelegate(putOutChar2);
                //执行触发事件的函数
                Console.WriteLine("执行绑定了两个事件后的函数");
                //调用事件(启动事件)
           myEvent.OnMyDelegateEvent();
    //解绑一个事件 myEvent.MyDelegateEvent -= new MyEvent.MyDelegate(putOutChar); //再次执行触发事件的函数 Console.WriteLine("执行解绑了一个事件后的函数"); myEvent.OnMyDelegateEvent(); Console.ReadKey(); } } }
  • 相关阅读:
    按比例缩放图片
    Centos8中安装并配置VDO来优化存储空间
    如何使用wipefs命令擦除磁盘上的签名
    cpufetch – 查询cpu架构信息的工具
    告别App,数字人民币钱包来了
    微软拿掉“测试版”的头衔,正式推出Windows 11 PC健康检查工具
    Find命令查找最近几天修改的文件
    Linux中source命令的使用方式
    稍微停顿,在思考一下。
    旺旺协议分析相关资料
  • 原文地址:https://www.cnblogs.com/liuyang95/p/11660963.html
Copyright © 2011-2022 走看看