c# 委托

这里说一下自己对委托的相关总结……

委托:是一种定义方法签名的类型。(注意是类型!)用于将方法作为参数传递给其它方法。

 class Program
    {
        //定义一个委托,它的返回类型为int,参数列表为两个int类型变量,
        //这里理解为,委托能调用的方法的返回类型为int,而且参数列表为两个int类型变量
        //所以要调用什么方法,委托的定义就要和它一样!除了加上个关键delegate
        public delegate int MyDelegate(int x, int y);

        static int MyFunction(int x,int y)
        {
            return x + y;
        }

        static void Main(string[] args)
        {
            MyDelegate myDelegate = new MyDelegate(MyFunction);

    //委托也是一种类型,所以要有实例
            //注意这里的参数,上面不是定义了两个int类型吗?这里却传方法名
            //没错,这里传方法,再想想委托的作用(用于将方法作为参数传递给其它方法)
            //所以这里用方法名传进去,委托定义那里用两个int类型只是为了说明能调用
            //这种返回类型为int,有两个int类型变量的方法

            
            int tmp = myDelegate(1,2);

    //这里就用委托实例传入两个int类型变量啦,相当于MyFunction(1,2)
            //这就是委托的作用啦,不用方法名就可以实现方法一样的效果
            //可能在这里觉得用委托比较麻烦,直接用方法就好啦,但仔细想想,委托的出现不么这么简单吧
            //任何东西存在都有它的道理的!以后学到了事件你就会更明白啦!

            Console.WriteLine(tmp);
        }
    } 

注意:本例中你会发现委托不是静态的却调用了静态的方法,是的,委托可以调用静态和非静态方法,你可以自己试试!

关于委托,下次再深入说一下:c# 委托深入!

posted on 2011-03-19 23:10  穆穆  阅读(307)  评论(0编辑  收藏  举报