C# Func<T,TResult>

using System;

namespace FuncDemo
{ 
    internal class Program
    {
        private static void Main()
        {
            //类似委托功能
            Func<InputArgs, Result> func = TsetFunction;
            Console.WriteLine("第一种方式:");
            Console.WriteLine(func(new InputArgs("zhangqs008", "123456")));

            Console.WriteLine("=============================================");

            Console.WriteLine("第二种方式:");
            CallMethod(func, new InputArgs("zhangqs008", "1234567")); //或者 
            CallMethod(TsetFunction, new InputArgs("zhangqs008", "1234567"));

            Console.Read();
        }


        public static Result TsetFunction(InputArgs input)
        {
            Result result = new Result();
            result.Flag = String.Compare("zhangqs008", input.UserName, StringComparison.OrdinalIgnoreCase) == 0 &
                String.Compare("123456", input.Password, StringComparison.OrdinalIgnoreCase) == 0;
            result.Msg = "当前调用者:" + input.UserName;
            return result;
        }

        public static void CallMethod<T>(Func<T, Result> func, T item)
        {
            Result result = func(item);
            Console.WriteLine(result.ToString()); 
        }
        /// <summary>
        /// 方法参数
        /// </summary>
        public class InputArgs
        {
            public InputArgs(string userName, string password)
            {
                UserName = userName;
                Password = password;
            }

            public string UserName { get; set; }
            public string Password { get; set; }
        }

        /// <summary>
        /// 方法结果
        /// </summary>
        public class Result
        {
            public string Msg { get; set; }
            public bool Flag { get; set; }
            public override string ToString()
            {
                return string.Format("Flag:{0},Msg:{1}", Flag, Msg);
            }
        }

    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值