C# 学习笔记_委托(二)Action与Func

Action的使用

    class Program
    {
        static void PrintString()
        {
            Console.WriteLine("Hello Word");
        }
        static void PrintInt(int i)
        {
            Console.WriteLine(i);
        }
        static void PrintString(string  str)
        {
            Console.WriteLine(str);
        }

        static void PrintDoubleInt(int i1,int i2)
        {
            Console.WriteLine(i1+i2);
        }
        static void Main(string[] args)
        {

            //Action a = PrintString; //action 是系统内置(预定义)的一个委托类型,它可以指向一个没有返回值,没有参数的方法 


            //Action<int> a= PrintInt;//定义了一个委托类型,这个类型可以只想一个没有返回值,有一个int参数的方法

            //Action<string> a = PrintString;//定义了一个委托类型,这个类型 可以只想一个没有返回值,有一个string参数的方法,在这里系统会自动寻找匹配的方法

            Action<int, int> a = PrintDoubleInt;
            a(34, 23);
            Console.ReadKey();
            //Action 最大可以有16个参数
            //action 可以后面通过泛型去指定action指向的方法的多个参数的类型,参数的类型跟action后面声明的委托类型是对应着的
        }
    }

Func的使用

    class Program
    {
        static int Test1()
        {
            return 1;
        }
        static int Test2(string str)
        {
            Console.WriteLine(str);
            return 100;
        }
        static int Test3(int i, int j)
        {
            return i + j;
        }
        static void Main(string[] args)
        {
            //Func<int> a =Test1;  // func中 的泛型类型指定的是方法的返回类型值
            //Console.WriteLine(a());
            //Console.ReadKey();


            // Func<string, int> a = Test2;//func 后面可以跟很多类型,最后一个类型是返回值类型,前面的类型是参数类型,参数类型必须跟指向的方法的参数类型按照顺数对应


            Func<int, int, int> a = Test3;
            int  res= a(1, 5);
            Console.WriteLine(res);
            Console.ReadKey();
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值