c#-委托

原创 2015年07月07日 18:01:25
c#委托
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
委托就是相当于c++中的指针。
总的来说委托就是方法里面还有方法!

步骤:1.定义一个委托,类型和参数;
            2.用于委托的方法,类型和参数与委托保持一致;
            3.调用委托;
实例一:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace delegateDemo
{
    public delegate void callDelegate(int a, int b);


    class Program
    {
        //定义一个委托
       


        private static void big(int a, int b)
        {
            if (a > b)
                Console.WriteLine("a"+a);
            else
                Console.WriteLine("a"+b);
        }


        private static void small(int a, int b)
        {
            if (a < b)
                Console.WriteLine(a);
            else
                Console.WriteLine(b);
        }


        //在函数内使用委托
        private static void Process(int a, int b, callDelegate call)
        {
            call(a, b);
        }
        static void Main(string[] args)
        {
            //委托实例与方法相关联
            Process(10, 20,big);
            Process(10, 20,small);
            Console.ReadKey();
            
        }
    }
}

实例二:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace delegateDemo
{
    public class ab
    {
        //用于委托调用的方法
        public int Big(int a, int b)
        {
            if (a > b)
                return a;
            else
                return b;
        }
        public int Small(int a, int b)
        {
            if (a < b)
                return a;
            else
                return b;
        }
    }
    class Program
    {
        //定义一个委托
        public delegate int callDelegate( int a, int b);

        //在函数内使用委托
        public static int Process( int a, int b, callDelegate call)
        {
            return call(a, b);
        }
        static void Main(string[] args)
        {
            //委托实例与方法相关联
             callDelegate delegateBig=new callDelegate( new ab().Big);
             int big = delegateBig(10, 20);

            //用委托调用相关联的方法
             int small = Process(10, 20, new callDelegate( new ab ().Small));
             Console.WriteLine(big);
             Console.WriteLine(small);
        }
    }
}


相关文章推荐

C#委托使用方法

  • 2016年06月21日 11:24
  • 421B
  • 下载

C#事件委托和回调的用法区别

事件包括:事件发送者、事件接收者和事件处理程序。 关于事件,我们首要知道的是事件的发送者必须知道发送什么类型的事件,以及相关 的事件参数。而事件的接收者必须了解其事件的处理方法必须使用的返回类型和...

C#中定时器的是使用及异步委托

  • 2017年09月18日 20:19
  • 210KB
  • 下载

c# 委托实现

  • 2015年10月08日 09:47
  • 563KB
  • 下载

通过代码学习C#&.NET——委托使用(事件、定时处理)

代码编写及运行环境Visual Studio 2010 .NET v4.0.30319 using System; using System.Collections.Generic; using...
  • gxmark
  • gxmark
  • 2011年10月15日 12:04
  • 2127

C#中的委托和事件

  • 2016年02月16日 09:53
  • 177KB
  • 下载

C#实验三 委托

  • 2015年01月01日 14:41
  • 160KB
  • 下载

.Net (C#)委托和事件(获取多个返回值)

From: http://www.xuebuyuan.com/841530.html 在讲如何获取多个返回值之前先来看一个小例子:           private v...

c#委托事件的实现

  • 2016年01月09日 14:10
  • 1.44MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c#-委托
举报原因:
原因补充:

(最多只允许输入30个字)