C#内置委托(Func,Action)基本使用

Func是带返回值的委托,比如Func<string,int,string,T> 最后一个就是你的返回值,前面的都是参数。

这里只讲基本的使用:

    public static void Main(string[] args)
        {
            //实例化
            func f = new func("张三");

            //调用委托将Run1方法传进去,用一个委托去接收一个方法

            var res=  f.funcc(Run1);

             Console.ReadKey();
        }
    public static string Run1(string Name)
        {
            return Name="小八";
        }
     public class func
        {
            //通过构造函数赋初始值
            public func(string name)
            {
                Name = name;
            }

            public string Name { get; }

            //创建一个Func内置委托的方法
            public T funcc<T>(Func<string, T> func)
            {
                return func(Name);
            }
        }

可以看出来虽然我们传进去的是叫张三的姓名,但是在方法中我们改变了值,但是不会改变构造函数中的张三互不影响。最后返回小八。

Action是无返回值的委托,比如Action<string,int,string>  

代码如下

    public static void Main(string[] args)
        {
            //实例化
            action action = new action();

            //调用委托将Run2方法传进去,用一个委托去接收一个方法

            action.acti(Run2);

            Console.ReadKey();
        }
     public static void Run2(string Name,int age)
        {
            Console.WriteLine("我叫{0},今年{1}",Name,age);
        }
     public class action
        {
            //Action内置委托,没有返回值
            public void acti(Action<string,int> action)
            {
                //给方法传入对应参数
                action("小八", 18);
            }
        }

这里可以看出来我们用Action委托接收了一个无返回值的方法并且能将方法中的值打印出来

结果: 输出我叫小八,今年18

猜你喜欢

转载自blog.csdn.net/weixin_51326081/article/details/129455816