首页 > 其他 > 详细

第七章:委托/lambda表达式/事件

时间:2019-03-31 23:26:26      阅读:117      评论:0      收藏:0      [点我收藏+]

委托

书上介绍包括网上找的各种资料给的解释时:委托是执行安全的类,它的使用方式与类类似(即都需要定义再实例化),不同在于,类在实例化之后叫对象或类的实例,但委托在实例化后仍叫委托,委托可以把函数作为参数传递.

语法声明:

delegate <return type> <delegate-name> <parameter list>

定义了一个Print类,包含一个静态方法和一个实例方法

public class Print
    {
//打印Hello
public static void PrintHello() { Console.WriteLine("Hello"); }
//打印World
public static void PrintWorld() { Console.WriteLine("World"); } }

先学学使用委托,上面说到使用委托需要先定义后实例化

class Program
    {
        //定义无返回值无参数的委托:意义:任何一个无返回值且无参数的方法都可以使用这个委托来调用
        delegate void MyDelegate();

        static void Main(string[] args)
        {
            //这里在实例化委托时需要提供一个参数,这个参数就是委托要执行的方法
            MyDelegate myDelegate = new MyDelegate(Print.PrintHello);
            //调用委托
            myDelegate();//输出Hello
            Console.ReadKey();
        }
    }

上面看到委托参数提供的是一个静态方法,下面尝试一下实例方法

class Program
    {
        //定义无返回值无参数的委托:意义:任何一个无返回值且无参数的方法都可以使用这个委托来调用
        delegate void MyDelegate();

        static void Main(string[] args)
        {
            //这里在实例化委托时需要提供一个参数,这个参数就是委托要执行的方法
            MyDelegate myDelegate = new MyDelegate(new Print().PrintWorld);
            //调用这个委托
            myDelegate();//输出World
            Console.ReadKey();
        }
    }

说明在实例化一个委托时,要给它一个参数,这个参数就是委托执行的方法,它可以是静态方法,也可以是实例方法(这一点有别于函数指针,函数指针只能调用静态方法)

这是一个基本委托的使用,但现在觉着用处不大,还不如直接调用方法,再看下面的情况

 

第七章:委托/lambda表达式/事件

原文:https://www.cnblogs.com/GnailGnepGnaw/p/10633810.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!