zoukankan      html  css  js  c++  java
  • C#高级通过类来理解学习委托

    namespace classanddelegate
    {
        class Program
        {
            static void Main(string[] args)
            {
                //这是类的实例化
                Test test = new Test();
                //创建一个委托实例的时候,需要确定需要与哪些方法关联起来。
                MyDelegate d = new MyDelegate(MyMethod); //创建了一个委托实例,要和方法关联起来
                d();
            }
            static void MyMethod()
            {
                Console.Write("委托方法");
            }
        }
        /// <summary>
        /// delegate 就是一种类型 定义了一个无参无返回值的委托,委托会对应具体的类型
        /// </summary>
        public delegate  void MyDelegate();
        /// <summary>
        /// 声明了一个类型
        /// </summary>
        class Test 
        {
            //类的成员
        }
    }
    View Code

    委托是一种类型,应该说是函数指针,可以用来传递方法的,可以用一个变量来接收方法,这个就是委托。因为委托可以接收方法,所以说定义委托的时候就应该要规定方法的返回值和参数,这样就会限定你所定义的这个委托就只能接收这个方法。这里也体现它是安全的,不是随意指向的。

    (一)为什么要有委托呢

    委托的作用:委托是一种数据类型,这种数据类型的变量可以赋值一个方法,也就是说我们可以在A方法的参数里面(设置一个delegate变量),就可以把方法作为参数进行传递了。这样做的好处就是:一般来讲,我们的方法调用的话,都会有局限于某一个域中。如果有了委托,方法就不在局限于某个域中,而是在任何地方都可以随便调用。

    当你定义一个委托的时候,要严格按照将来存储什么方法来定义。

    委托使用步骤

    1、定义一个委托

    2、声明一个委托变量,委托变量也是一个引用类型。

    委托之所以说是安全的,

    是因为定义委托的时候是这样的 public deleagate int Method(

    类的定义是由关键字class 定义一个类 class 类名 

    委托的定义是由关键字delegate  delegate 委托名称,

  • 相关阅读:
    php错误抑制符
    php执行运算符
    php中一个经典的!==的用法
    php实现简单验证码的功能
    jquery是什么
    php连接符
    php与java语法的区别
    考雅思策略
    php魔术常量
    PHP中数据类型转换的三种方式
  • 原文地址:https://www.cnblogs.com/gdouzz/p/4924224.html
Copyright © 2011-2022 走看看