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("无参数");
            }
        }

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

  • 相关阅读:
    LeetCode 1109 航班预定统计
    leetcode 138 复制带随机指针的链表
    maven导入org.apache.pdfbox
    Intellij Idea 通过svn或者git提交代码时速度慢的解决办法
    java LocalDateTime 加减当前时间
    git命令--拉取代码和切换分支
    Intellij IDEA插件Free Mybatis plugin
    MySQL 生成随机字符串 uuid
    最新版Navicat Premium v15.0.26 中文破解
    算法——二分法查找
  • 原文地址:https://www.cnblogs.com/webyu/p/2512509.html
Copyright © 2011-2022 走看看