Func<TResult>和Func<TSource, TResult>
来源:互联网 发布:申请网络记者 编辑:程序博客网 时间:2024/05/18 03:21
TSource和TResult
/*Func<TResult>和Func<TSource, TResult>*/
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConAppTRusult{ class Program { static void Main(string[] args) { var obj = new User(); obj.TestTResult(); } } class User { public int ID { get; set; } public string Name { get; set; } public char Sex { get; set; } public int Age { get; set; } public List<User> GetUser() { var list = new List<User>(); var u1 = new User(); u1.ID = 1; u1.Name = "Alan"; u1.Sex = 'M'; u1.Age = 33; list.Add(u1); var u2 = new User(); u2.ID = 2; u2.Name = "Betty"; u2.Sex = 'F'; u2.Age = 31; list.Add(u2); var u3 = new User(); u3.ID = 3; u3.Name = "Cora"; u3.Sex = 'F'; u3.Age = 27; list.Add(u3); return list; } public static List<User> GetUserList() { return new List<User>(); //return new User().GetUser(); } public static List<User> GetUserListByModel(User model) { return new List<User>(); //return new User().GetUser(); } public static TResult GetModelList<TResult>(Func<TResult> GetFunc) { return default(TResult); } public static TResult GetModelList<TSource, TResult>(Func<TSource, TResult> GetFunc) { return default(TResult); } public static TResult GetModelList2<TResult>(Func<TResult> GetFunc) where TResult : class //where TResult : List<User> { //return default(TResult); return new User().GetUser() as TResult; } public static TResult GetModelList2<TSource, TResult>(Func<TSource, TResult> GetFunc) where TResult : List<User> { //return default(TResult); return new User().GetUser() as TResult; } public void TestTResult() { GetModelList(GetUserList); //GetModelList(GetUserListByModel); GetModelList((User User) => GetUserListByModel(User)); //var list = new User().GetUser(); //var list = GetUserList(); //var list = GetModelList(GetUserList); //error: list is null var list = GetModelList2(GetUserList); //right: list is not null //var list = GetModelList2((User User) => GetUserListByModel(User));//right: list is not null foreach (var item in list) { Console.WriteLine(item.ID + "-" + item.Name+"-"+item.Sex+"-"+item.Age); } //下面语句等价 //GetModelList2(GetUserList) <=> GetModelList2<List<User>>(GetUserList); } }}
版权所有,转载请注明文章出处 http://blog/csdn.net/cadenzasolo
0 0
- Func<TResult>和Func<TSource, TResult>
- Expression<Func<T,TResult>>和Func<T,TResult>的区别
- Func<T, TResult> 委托
- Func<T, TResult> 委托
- C# Func<T,TResult>
- Func<T, TResult> 委托
- Func<TResult>委托和Action委托
- Lambda表达式理解和Func<T,TResult>的浅析
- Func<(Of <(T, TResult>)>) 泛型委托
- Func<TResult>委托,Action 委托,Tuple 类
- Func<T,TResult>泛型委托
- Func<T,TResult>泛型委托
- Func<T1, T2, TResult> 泛型委托
- Func<T, TResult>泛型委托
- Func<T, ..., TResult> 委托 实现方法嵌套
- [原创]Func〈T, TResult〉 泛型委托 以及演变历程(整理自MSDN)
- Func〈T, TResult〉 泛型委托 以及演变历程
- func
- 详解 poj 1190 深搜 加 剪枝
- 第二周项目3-小试循环
- Mysql基于FEDERATED存储引擎的远程表使用
- Java常见乱码问题总结
- C/C++面试题
- Func<TResult>和Func<TSource, TResult>
- BZOJ3757: 苹果树
- UVA11922 Permutation Transformer(Splay)
- online_judge_1515
- Android基础(3)——Android Studio模拟器Genymotion
- 将list集合的数据转为map返回给前端
- 最火视频直播应用Meerkat: 简单到令人发指 却成功了
- poj 1064(简单二分)
- 自适应字符环境wind32程序