zoukankan      html  css  js  c++  java
  • 常见泛型委托

    1.Action

    Action<>委托可以拥有n个参数(0-16),无返回值。

    class Program
    {
        static void Method1()
        {
            Console.WriteLine("without any parameter");
        }
        static void Method2(int i)
        {
            Console.WriteLine($"the int is {i}");
        }
        static void Method3(string s, double d)
        {
            Console.WriteLine($"the string is {s}, the double is {d}");
        }
        static void Main()
        {
            Action A1 = Method1;
            Action<int> A2 = Method2;
            Action<string, double> A3 = Method3;
            A1();
            A2(1);
            A3("hello", 3.14);
            Console.ReadKey();
        }
    }
    View Code

    输出结果如下:

    without any parameter
    the int is 1
    the string is hello, the double is 3.14

    2.Func

    Func<>委托可以拥有n个参数(1-16),类型参数中的最后一个作为返回值类型。因此类型参数不能为空,至少有一个返回类型。

    class Program
    {
        static int Method1(int i)
        {
            return i * 10;
        }
        static string Method2(int a, double d)
        {
            return (a + d).ToString();
        }
        static void Main()
        {
            Func<int, int> F1 = Method1;
            Func<int, double, string> F2 = Method2;
            Console.WriteLine($"{F1(10)}");
            Console.WriteLine($"{F2(1, 3.14)}");
            Console.ReadKey();
        }
    }
    View Code

    输出结果如下:

    100
    4.14

    3.Predicate

    Predicate<>委托拥有一个参数,其返回值为bool型。

    class Program
    {
        static bool Method(int i)
        {
            return i > 0 ? true : false;
        }
        static void Main()
        {
            Predicate<int> P = Method;
            Console.WriteLine(P(10));
            Console.ReadKey();
        }
    }
    View Code

    输出结果如下:

    True

    通过匿名方法使用Predicate<>,

    class Program
    {
        static void Main()
        {
            var anomynous = new Predicate<int>(delegate (int i) { return i > 0 ? true : false; });
            Console.WriteLine(anomynous(1));
            Console.ReadKey();
        }
    }
    View Code

    输出结果如下:

    True
  • 相关阅读:
    git常用指令 github版本回退 reset
    三门问题 概率论
    如何高效的学习高等数学
    数据库6 关系代数(relational algebra) 函数依赖(functional dependency)
    数据库5 索引 动态哈希(Dynamic Hashing)
    数据库4 3层结构(Three Level Architecture) DBA DML DDL DCL DQL
    梦想开始的地方
    java String字符串转对象实体类
    java 生成图片验证码
    java 对象之间相同属性进行赋值
  • 原文地址:https://www.cnblogs.com/jizhiqiliao/p/9849753.html
Copyright © 2011-2022 走看看