zoukankan      html  css  js  c++  java
  • 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);
                }
            }
    
        }
    }

  • 相关阅读:

    暴力求解/数学问题
    Leetcode207. Course Schedule
    Balanced Team
    由先序和中序求后序
    Median String
    树的同构
    uva 202
    整除光棍
    阅览室
  • 原文地址:https://www.cnblogs.com/zhangqs008/p/3018698.html
Copyright © 2011-2022 走看看