• 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 198 打家劫舍
    leetcode 46 全排列
    设计模式 之 动态代理
    设计模式 之 静态代理
    设计模式 之 桥接模式
  • 原文地址:https://www.cnblogs.com/webyu/p/2512509.html
Copyright © 2020-2023  润新知