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);
            }
        }

    }
}

目录
相关文章
|
编译器 C#
C#中内置的泛型委托Func与Action
C#中内置的泛型委托Func与Action
247 4
C#委托/Func()中 GetlnvocationList()方法的使用 | 接受委托多个返回值
C#委托/Func()中 GetlnvocationList()方法的使用 | 接受委托多个返回值
391 0
C#委托/Func()中 GetlnvocationList()方法的使用 | 接受委托多个返回值
C#基础知识学习之 ✨ 委托的兄弟姐妹们 delegate、Action、Func、Predicate
委托 delegate、Action、Func、Predicate 简单介绍 delegate、Action、Func、Predicate 几种基础的委托结构 几种委托的实例用法 开始分析 delegate使用 Action的用法 Func的用法 简单总结
C#基础知识学习之 ✨ 委托的兄弟姐妹们 delegate、Action、Func、Predicate
|
C#
浅谈C#中Tuple和Func的使用
为什么将Tuple和Func混合起来谈呢? 首先,介绍一下:Tuple叫做元组,是.Net Framwork4.0引入的数据类型,用来返回多个数值。在C# 4.0之前我们函数有多个返回值,通常是使用ref,out 。
1023 0