zoukankan      html  css  js  c++  java
  • asp.net 委托用法

    using System;
    
    namespace WeiTuo
    {
        public delegate void MakeGreeting(string name);
        class Program
        {
            public static void EnglishGreeting(string name)
            {
                Console.WriteLine("morning:"+ name);
            }
    
            public static void ChineseGreeting(string name)
            {
                Console.WriteLine("早上好:"+name);
            }
    
            public static void GreetPeople(string name, MakeGreeting makegreet)
            {
                makegreet(name);
            }
    
            static void Main(string[] args)
            {
                //GreetPeople("Dom",EnglishGreeting);
                //GreetPeople("于海涛",ChineseGreeting);
    
    
                //MakeGreeting delegate1, delegate2;
                //delegate1 = EnglishGreeting;
                //delegate2 = ChineseGreeting;
                //GreetPeople("Dom", delegate1);
                //GreetPeople("于海涛", delegate2);
    
    
                //将多个方法绑定到同一个委托
                //MakeGreeting delegate1;
                //delegate1 = EnglishGreeting;
                //delegate1 += ChineseGreeting;
                //GreetPeople("于海涛", delegate1);
    
                //通过委托直接调用方法
                //MakeGreeting delegate1;
                //delegate1 = EnglishGreeting;
                //delegate1 += ChineseGreeting;
                //delegate1("于海涛");
    
                //MakeGreeting delegate1 = new MakeGreeting(EnglishGreeting);
                //delegate1 += ChineseGreeting;
                //delegate1("于海涛");
    
                //取消对ChineseGreeting方法的绑定
                //delegate1 -= ChineseGreeting;
                //delegate1("Dom");
    
            }
        }
    }
    
    public delegate void WeiTuo2();
        public delegate void WeiTuo3(string str);
        class Program
        {
            static void Main(string[] args)
            {
    
                WeiTuo2 weituo = new WeiTuo2(ShuChu);
                weituo.Invoke();
    
                WeiTuo3 wt = new WeiTuo3(ShuChu);
                wt.Invoke("带参数");
    
                Console.ReadLine();
            }
    
            static void ShuChu(string str)
            {
                Console.WriteLine(str);
            }
    
            static void ShuChu()
            {
                Console.WriteLine("无参数");
            }
        }

    说的比较直白点,委托其实就是将方法作为方法的参数。

  • 相关阅读:
    Python函数语法里的中括号和逗号是什么意思
    关于mysql配置文件中jdbc url 的记录
    MySQL 优化慢查询
    Windows10 解决端口占用问题
    数据结构与算法分析-表,栈,队列
    MySQL手动执行rollback,内部实现分析
    Docker 之 RabbitMQ安装教程 基于腾讯云
    Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work
    List按需转换Map
    位移运算符 1<<4
  • 原文地址:https://www.cnblogs.com/webyu/p/2512509.html
Copyright © 2011-2022 走看看