委托

委托

  • 理解:委托就是将一个方法当作参数传递给另一个方法。
  • 关键字有返回值类型,和参数类型,委托只可以给返回值类型和参数类型一样的方法委托。
    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 可以指向有一个返回值的方法, 且必须有返回值。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 大家好,我是北京菜鸟在线的unity3d 高级讲师,范老师,这次我们接着上次的内容继续 (3-1) 我们还可以用...
    土豆_9724阅读 2,548评论 0 0
  • Action委托 static void PrintString(){Console.WriteLine(“Act...
    灰灰灰灰灰丶阅读 3,192评论 0 0
  • 委托在编译的时候会编译成类;是一种引用类型,定义了方法的类型;委托保存的是对函数(function)的引用。 声明...
    1cf694582c2f阅读 2,985评论 1 2
  • 1.委托的声明 Delegate可以指定返回值类型;Aciton无返回值类型;Func的最后一个参数表示返回值类型...
    混世小码农阅读 3,003评论 0 1
  • 遇到瓶颈了,可能是膨胀了。
    CristPenn阅读 2,361评论 3 6

友情链接更多精彩内容