zoukankan      html  css  js  c++  java
  • 泛型委托学习(Func和Action)

    Func<TParams,TResult>

    泛型委托。TParams是此委托封装的方法的参数类型,可以有0个或多个  但最多不能超过4个   TResult返回值类型

    可以使用此委托表示一种能以参数形式传递的方法,而不用显式声明自定义委托。该方法必须与此委托定义的方法签名相对应。也就是说,封装的方法必须具有一个通过值传递给它的参数,并且必须返回值

    例1:

     static void Main(string[] args)
            {

               Func<string, string> funcTest = Demo;

                Console.WriteLine(funcTest("aaaaaa"));

           }

       static string Demo(string s)
            {
                return s.ToUpper();
            }

    //输出AAAAAA

    该 委托还可以与匿名方法一起使用!

    例2:

      Func<string ,string>funTest=delegate(string s) { return s.ToUpper(); };

    Console.WriteLine(funcTest("aaaaaa"));

    输出结果与例1一样

    还可以将 lambda 表达式分配给 Func 委托

    例3

      Func<string, string> funcTest = s => s.ToUpper();

                Console.WriteLine(funcTest("aaaaaa"));

    输出结果都一样  使用Lambda表达式 更加简洁

    但如果是没有返回值的呢?因为Func委托是一定要有返回值的  所以就要用Action了

    Action<TParams>

    该委托方法无返回值 TParams参数类型列表  只能是1到4个

    例:

     static void Main(string[] args)
            {

         Action<string> actionTest = Demo2;
                actionTest("zhang");

           }

         static void Demo2 (string s)
           {
               Console.WriteLine(s.ToUpper());
           }

    输出ZHANG

    (Action无法像Func与Lambda表达式连用)

  • 相关阅读:
    LINUX的LAMP环境搭配
    Jquery添加元素append及阻止表单提交submit
    django上传文件
    Html5本地存储LocalStorage
    Html5离线缓存详细讲解
    html5的canvas绘制迷宫地图
    EXT.NET复杂布局(二)——报表
    Silverlight——施工计划日报表(一)
    Silverlight——施工计划日报表(二)
    前端学HTTP之网络基础
  • 原文地址:https://www.cnblogs.com/zhangqifeng/p/1504434.html
Copyright © 2011-2022 走看看