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); } } } }
最後更新:2017-04-02 00:06:55