美文网首页C#
面向对象(十六)-Action委托、Func委托

面向对象(十六)-Action委托、Func委托

作者: 元宇宙协会 | 来源:发表于2017-12-10 21:47 被阅读46次

    1.Action委托

    1、Action简介:

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

    2、Action基本使用
    static void printString(){
      Console.WriteLine("Hello World");
    }
    
    static void Main(String[] args){
      Action a = printString;
      a(); // 输出结果  Hello World
    }
    

    Action其他使用方法

    3、Action指向有参数的方法
    static void printNumber(int x){
        Console.WriteLine(x);
    }
    
    static void Main(String[] args){
      Action<int> a = printNumber; // 定义一个指向 形参为int的函数
      a(5); // 输出结果  5
    }
    

    Action可以通过泛型来指定,指向的方法有 0 - 16个参数

    Action<int, int, string, bool 等等>
    

    2.Func委托

    • 1.简介

    Func 也是C#预定义的委托, 且可以指向带有一个返回值的方法,传递0-16个参数。

    与Action区别:
    Action 不能指向有返回值的方法 , 不能有返回值 。Func 可以指向有一个返回值的方法, 且必须有返回值。
    For Example

    1>指定返回值
    static int GetNumber()
    {
        return 1;
    }
    
    static void Main(string[] args)
    {
     Func<int> a = GetNumber; // 定义一个Func 委托,  指向一个返回int类型的 方法
     Console.WriteLine(a());
    }
    
    2>指定参数和返回值的例子

    Func<string, int>最后一个参数表示返回值类型,前面的都是形参类型。

    static int Test2(string str){
      return 1;
    }
    
    static void Main(string[] args){
     Func<string, int> a = Test2; // 泛型中最后一个参数表示返回值类型。
     Console.WriteLine(a("a"));
    }
    
    

    作者:silence_k
    链接:http://www.jianshu.com/p/048464843a74
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

        本文标题:面向对象(十六)-Action委托、Func委托

        本文链接:https://www.haomeiwen.com/subject/fcfbixtx.html