c#委托

可参考:b站搜索C#0基础入门精解:13 C#委托"  up主:渥瑞达北美IT培训 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace @delegate
{
    class MainClass
    {

        /*委托的注意事项:
          能够被委托包装的方法必须满足以下两个条件:
          1.方法的参数列表(参数个数和类型)要与委托的参数列表一致
          2.方法的返回类型要于委托的返回类型一致
        */

         /*委托使得代码得以复用;便于维护和扩展*/

        //定义委托
        public delegate void MyDelegate(string name, string language);
        static void Main(string[] args)
        {
            (方法一)
            声明委托变量
            //MyDelegate del;
            实例化委托变量
            //del = new MyDelegate(new MainClass().Greeting);
            传递委托变量
            //MainClass.MyDelegateMethod(del);

            //(方法二)
            //实例化委托变量
            //MainClass.MyDelegateMethod(new MainClass().Greeting);

            Greet greet = new Greet();
            Greet.Greeting("张三", greet.ChineseGreeting);
            Greet.Greeting("tom", greet.EnglishGreeting);

        }

        //public static void MyDelegateMethod(MyDelegate del)
        //{
        //    //调用委托
        //    del("张三", "chn");
        //}
       
        public void ChineseGreeting(string name)
        {
            Console.WriteLine("你好" + name);
        }

        public void EnglishGreeting(string name)
        {
            Console.WriteLine("hello" + name);
        }

    }

    public class Greet
    {
        public delegate void GreetDelegate(string name);
        public static void Greeting(string name,GreetDelegate gd)
        {
            gd(name);
        }

        public void ChineseGreeting(string name)
        {
            Console.WriteLine("你好" + name);
        }

        public void EnglishGreeting(string name)
        {
            Console.WriteLine("hello" + name);
        }
    }
}
/*心得:
delegate就是相当于函数的指针
代码中出现与delegate相关的部分都当做函数的名字去反向追踪,就能看懂代码
*/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值