委托

委托:声明的关键字delegate

就是代理,事件也是委托,但是是一种特殊的委托;
1、声明委托类型:

2、委托变量的定义及赋值:

3、委托变量的使用:

 

例:

创建一个项目,写一个委托,添加一个类,类的构造和委托相同

类:

 

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

namespace 委托
{
    class jiafa //添加一个类,里面使用方法和委托结构相同
    {
        public int jia(int a, int b)//两个参数一个返回值
        {
            return a + b;
        }

        public int jian(int a, int b)
        {
            return a - b;
        }
    }
}

 

项目:

 

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

namespace 委托
{
    public delegate int FirstDel(int a, int b);//在Program类上面,命名空间下面写一个委托,声明一下
                                               //委托类型,注意关键字delegate,添加一个类
    class Program                              
    {
        static void Main(string[] args)
        {
            //委托不是一个类,没有构造函数,不能进行实例化使用,需要使用一个委托变量赋值一个使用方法,
            //这里给他赋值添加的类,正常写法一般先实例化一下类
            jiafa ff = new jiafa();
            //然后再定义一个委托变量去接收这个类里面的使用方法
            FirstDel fo = ff.jia;//这个类直接点出使用方法,不需要加括号,传参数
            //因为这个方法赋值给了委托变量,直接用委托变量调用里面的方法
            int d = fo(5, 4);//给方法传进两个参数,定义一个变量接收一下返回值
            Console.WriteLine(d);//打印一下接收到的返回值


            //为了程序的便捷性,可以这样写
            FirstDel f1 = new jiafa().jia;

            int c = f1(5, 4);//根据类里面写的方法给他两个参数,定义变量接收一下返回值

            Console.WriteLine(c);//打印这个变量接收到的返回值

            FirstDel f2 = new jiafa().jian;

            c = f2(5, 4);//变量c已经定义过数据类型,直接接收返回值
            Console.WriteLine(c);//打印接收到的返回值

            c = f1(5, 4) + f2(5, 4);//也可以将这两个方法的返回值进行数学运算,用c接收

            Console.WriteLine(c);//打印变量c接收到的运算结果

            Console.ReadKey();
        }
    }
}

 

posted @ 2016-06-21 00:07  小飛  阅读(150)  评论(0编辑  收藏  举报