您的当前位置:首页正文

委托

来源:华拓网

委托

  • 理解:委托就是将一个方法当作参数传递给另一个方法。
  • 关键字有返回值类型,和参数类型,委托只可以给返回值类型和参数类型一样的方法委托。
    namespace 委托
    {
    //声明了一个委托
    public delegate int GetMax(string name, int age);
    class Program
    {
    static void Main(string[] args)
    {
    GetMax get = new GetMax(GetMax2);//实例化这个委托,将GetMax这个方法传给委托。
    get("这个参数和GetMax一样", 20);
    Console.ReadKey();
    //这样就完成了一个方法的委托。
    }
    //声明了一个静态方法,返回值类型和参数类型不一样,所以不能将这个方法传给委托
    static void GetMax1()
    {
    Console.WriteLine("调用不到");
    }
    //这个方法的返回值类型和参数类型和声明的委托一样,可以将这个方法传给委托。
    static int GetMax2(string name,int age)
    {
    Console.WriteLine("可以调用这个方法");
    return 0;
    }
    }
    }

1、Action简介:

C#中与预定义了一个委托类型Action
它默认可以指向一个没有返回值,没有参数的方法。

  • Action的使用
    static void printString()
    {
    Console.WriteLine("Hello World");
    }
    static void Main(String[] args)
    {
    Action a = printString;
    a();
    // 输出结果 Hello World
    }
    2.Func委托
    1.简介
    Func 也是C#预定义的委托, 且可以指向带有一个返回值的方法,传递0-16个参数。
    与Action区别:Action 不能指向有返回值的方法 , 不能有返回值 。Func 可以指向有一个返回值的方法, 且必须有返回值。