C#的委托(基本)

下面的例子是自己打的,挫点是正常的。 资料是网上的。整理了一下,可能还有遗漏

委托是一种基本的引用类型。
调用委托的时候,委托包含的所有方法将被执行。
定义委托关键字	delegate
委托的前提是要有那么一个方法

通过委托,可以将方法视为可分配给变量并可作为参数传递的实体。(来自c#中文手册)
委托不知道也不关心所引用的方法的类;只关心引用的方法是否具有与委托相同的参数和返回类型。
(来自c#中文手册)

定义语法如下:
修饰符  delegate  返回值类型  委托名 ( 参数列表 );
//同下
  public delegate void weituo();
        static void Main(string[] args)
        {
            weituo a = new weituo(say);//委托实例化(ps:跟new一个对象差不多)
            a();
            Console.ReadKey();
        }

        static void say()
        {
            Console.WriteLine("MVP_JiangJiang");
        }
//无参无返回值
//打印MVP_JiangJiang
public delegate void weituo();
        static void Main(string[] args)
        {
            weituo a = say;//注意这里是方法名,并不用接上后面的()
            a();
            Console.ReadKey();
        }

        static void say()
        {
            Console.WriteLine("MVP_JiangJiang");
        }
//有参无返回值
//打印MVP_JiangJiang
 public delegate void weituo(string s);
        static void Main(string[] args)
        {
            weituo a = say;
            string s = "MVP_JiangJiang";
            a(s);
            Console.ReadKey();
        }

        static void say(string s)
        {
            Console.WriteLine(s);
        }
//有参有返回值
//打印1.3+1.5的结果
public delegate double weituo(double n1,double n2);
        static void Main(string[] args)
        {
            weituo a = say;
            double n1 = 1.3, n2 = 1.5;
            double c = a.Invoke(n1, n2);
            Console.WriteLine(c);
            Console.ReadKey();
        }

        static double say(double n1,double n2)
        {
            return n1 + n2;
        }
当然了,上面的那些例子其实也没有必要用委托,直接用方法或者直接写下去也行。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值