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

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

原文地址:https://www.cnblogs.com/webyu/p/2512509.html