委托 delegate

来源:互联网 发布:网络神助攻什么意思 编辑:程序博客网 时间:2024/05/19 05:04

定义:

委托就像是函数指针。

定义一个委托 = 定义一个新类。


delegate double twoLongOp(long first, long second);

用delegate开头,上面表示定义了一个委托twoLongOp,它带有两个参数first和second和一个double的返回值。


泛型委托,Action<T1, T2, .........T16> 用于没有返回类型的。

                    Func<T1, T2, .........T16, TResult> 用于有返回类型的,返回值为TResult。

Func<(long , long, double>twoLongOp; 定义了一个委托变量twoLongOp,它带有两个long型的参数和一个 double型的返回值。

注意twoLongOp是一个变量,不能用它去实例化对象。


使用:

将委托传递给方法;

委托数组;

class Program    {        delegate double twoLongOp(long first, long second);        static double funcPlus(long first, long second)        {            return first + second;        }        static double funcChen(long first, long second)        {            return first * second;        }        static void Main(string[] args)        {            twoLongOp[] FuncList = { funcPlus, funcChen};            /*twoLongOp[] FuncList = new twoLongOp[2];            FuncList[0] = funcPlus;            FuncList[1] = funcChen;             这样当然也是可以的*/            foreach(twoLongOp aFunc in FuncList)            {                Console.WriteLine(aFunc(4,4));            }            //委托泛型            Func<long, long, double>[] FuncList2 = { funcChen , funcPlus};            foreach (Func<long, long, double>aFunc in FuncList2)            {                Console.WriteLine(aFunc(5, 5));            }            Console.ReadKey();       
输出:

8

16

25

10


0 0
原创粉丝点击