zoukankan      html  css  js  c++  java
  • C#之委托初步

        传说中的东西,今天兴趣来了,就研究了研究,把大概什么是委托,如何使用委托稍微梳理了一下。

    1、什么是委托

       首先,Class(类)是对事物的抽象,例如,哺乳动物都是胎生,那么你可以定义一个哺乳动物的基类,然后一大片的驴,马,狗,猪都从这继承而去。

       委托可以认为是同一类函数(function,也叫做方法)的抽象,代表的一系列同返回类型,同形参列表的函数。

       委托是个类型,就像int之流的一种类型。一个委托类型的变量可以指向一串同类型的函数,到时候需要调用这一串函数的时候,就可以调用这个委托类型的变量来使这些函数执行。

    2、如何使用委托:

        先定义一个类,里面包含了一些具体的方法

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 //方法类就是需要实现具体功能的一些函数
     6 namespace DelegateTest
     7 {
     8     class Hit
     9     {
    10         public void hitxiaoming()
    11         {
    12             Console.WriteLine("xiaoming was hited 
    ");
    13         }
    14         public void hitdahong()
    15         {
    16             Console.WriteLine("dahong was hitted
    ");
    17         }
    18         public void hitxiaoweng()
    19         {
    20             Console.WriteLine("xiaoweng was hitted
    ");
    21         }
    22     }
    23 }
    View Code

        在主程序中通过委托调用这三个函数,代码如下:

        主要分四步 声明委托类型,定义委托变量,绑定函数,调用委托

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace DelegateTest
    {
        class Program
        {
            delegate void hitSomeBody();//声明一个委托类型(不是变量)此时,hitSomeBody相当于数据类型,例如int
            private hitSomeBody hitone;//定义一个委托类型的变量,此时hitone是变量
            private Hit hit = new Hit();
            public void iniDelegate()
            {
                this.hitone += hit.hitdahong;//将函数绑定到委托变量中等效于hitone = new hitone(hitdahong);
                this.hitone += hit.hitxiaoming;
                this.hitone += hit.hitxiaoweng;
                hitone();//执行委托
            }
            static void Main(string[] args)
            {
                Program p = new Program();
               p.iniDelegate();
            }
           
        }
    }
    View Code
  • 相关阅读:
    cocos2d-x JS 定时器暂停方法
    cocos2d-x JS 本地玩家位置跟服务器玩家位置转换相关
    cocos creator 背景音乐音量和音效音量百分比设置
    iPhoneX快速适配,简单到你想哭。
    Cocos Creator Slider(进度条)的三种实现
    图片的本地存储和读取问题
    Creator仿超级玛丽小游戏源码分享
    cocos2d-x 贡献一个oss上传脚本
    Cocos Creator
    Cocos Creator cc.Node.点击事件
  • 原文地址:https://www.cnblogs.com/tntboom/p/3967435.html
Copyright © 2011-2022 走看看