C# 泛型说明
详细说明转
https://www.cnblogs.com/dotnet261010/p/9034594.html
最近项目用到了多个参数的泛型方法,这里说明下泛型的组成:
/// <summary>
/// 泛型处理方法。
/// </summary>
/// <typeparam name="TRequestBody"></typeparam>
/// <typeparam name="TTestParam"></typeparam>
/// <typeparam name="TResponse"></typeparam>
/// <param name="request"></param>
/// <param name="tstr"></param>
/// <param name="codeBlock"></param>
/// <returns></returns>
public static async Task<Response<TResponse>> Process<TRequestBody,TTestParam, TResponse>(this Request<TRequestBody> request, TTestParam tstr, Func<FlexBenefitAppContext, Task<Response<TResponse>>> codeBlock) where TRequestBody : class
{
var appContext = new FlexBenefitAppContext();// BuildAppContext();
appContext.Culture = request.Header.Culture;
appContext.ClientCode = "benefit-client-template";//get client code from request
appContext.EmployeeId = ;//use openId to get employee info
return await codeBlock(appContext);
}
本方法中包含了3个类型参数,分别是Process<TRequestBody,TTestParam, TResponse>,在Process方法中,分别传入了这三个类型参数的参数this Request<TRequestBody> request,这里采用的是this扩展方法,所以第一个参数就是request本身, TTestParam tstr, Func<FlexBenefitAppContext, Task<Response<TResponse>>> codeBlock
调用方法:
public async Task<Response<EmployeeInfo>> Info([FromBody]Request<EmployeeNoParameter> request)
{
var response = new Response<EmployeeInfo>()
{
Header = new ResponseHeader()
{
Version = ,
IsSuccess = true,
Errors = new List<ResponseError>()
}
};
//这里的process方法调用上面定义的泛型方法
return await request.Process("aaaa",async (appContext) =>
{
using (var serviceContext = new ServiceContext(appContext))
{
var employeeInfo = await serviceContext.EmployeeService.GetEmployeeInfo(request.Body.EmployeeNo);
response.Body = employeeInfo;
} return response;
});
}
C# 泛型说明的更多相关文章
- 一起学 Java(三) 集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- .NET面试题系列[8] - 泛型
“可变性是以一种类型安全的方式,将一个对象作为另一个对象来使用.“ - Jon Skeet .NET面试题系列目录 .NET面试题系列[1] - .NET框架基础知识(1) .NET面试题系列[2] ...
- C#4.0泛型的协变,逆变深入剖析
C#4.0中有一个新特性:协变与逆变.可能很多人在开发过程中不常用到,但是深入的了解他们,肯定是有好处的. 协变和逆变体现在泛型的接口和委托上面,也就是对泛型参数的声明,可以声明为协变,或者逆变.什么 ...
- 编写高质量代码:改善Java程序的151个建议(第7章:泛型和反射___建议106~109)
建议106:动态代理可以使代理模式更加灵活 Java的反射框架提供了动态代理(Dynamic Proxy)机制,允许在运行期对目标类生成代理,避免重复开发.我们知道一个静态代理是通过主题角色(Prox ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- C#泛型详解(转)
初步理解泛型: http://www.cnblogs.com/wilber2013/p/4291435.html 泛型中的类型约束和类型推断 http://www.cnblogs.com/wilber ...
- C# 泛型
C# 泛型 1.定义泛型类 在类定义中包含尖括号语法,即可创建泛型类: class MyGenericClass<T> { //Add code } 其中T可以遵循C#命名规则的任意字符. ...
- java8中lambda表达式的应用,以及一些泛型相关
语法部分就不写了,我们直接抛出一个实际问题,看看java8的这些新特性究竟能给我们带来哪些便利 顺带用到一些泛型编程,一切都是为了简化代码 场景: 一个数据类,用于记录职工信息 public clas ...
- java 泛型
1.Student stu =tool.getObj();右边得到的是Object类型,需要向下转型,强转换. 2. 3. 4.泛型方法不能被静态修饰这样写 5.如果想定义定义静态泛型方法,只能这样写 ...
- Java泛型的历史
为什么Java泛型会有当前的缺陷? 之前的章节里已经说明了Java泛型擦除会导致的问题,C++和C#的泛型都是在运行时存在的,难道Java天然不支持“真正的泛型”吗? 事实上,在Java1.5在200 ...
随机推荐
- ZDialog关闭父窗口、往父窗口传值、刷新父窗口
关闭自己 //关闭自己 top.Dialog.close(); 关闭父窗口 //关闭父窗口 parentDialog.parentWindow.close() 往父窗口传值 //在本页面,调用父页面方 ...
- [CF546C] Soldier and Cards - 模拟
两个人玩牌,首先两个人都拿出自己手牌的最上面的进行拼点,两张拼点牌将都给拼点赢得人,这两张牌放入手牌的顺序是:先放对方的牌再放自己的.若最后有一个人没有手牌了,那么他就输了,求输出拼点的次数和赢得人的 ...
- spark 为什么要用broadcast[转]
为什么要用broadcast? 21down vote If you have huge array that is accessed from Spark Closures, for example ...
- 在Unity5中使用C#脚本实现UI的下滑、变色、渐隐渐现效果
一.首先,我们先创建一个Text 依次选择Component→UI→Text创建一个Text,创建完成后如下: 二.创建完成后,在Project面板点击Create→C# Script,本例命名 ...
- VMware该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权
原文链接:https://blog.csdn.net/helloxiaozhe/article/details/81176684 VMware该虚拟机似乎正在使用中.如果该虚拟机未在使用,请按“获取所 ...
- 数字输出精度 - C语言
1. 浮点型/双精度浮点型 double a=1234.5678; printf("%8.2lf\n",a);// 小数点前的数表示总位数,小数点也算一位 printf(" ...
- HTML表单提交标签
<form>表单提交标签,设置提交范围 有name属性才能被提交 action:提交的地址url method:提交方式 get方式(默认):会将参数拼接在连接后,有大小限制(4k) po ...
- [Java IO]05_JSON操作
目录 6.1 JSON 知识背景 6.1.1 JSON 简介 6.1.2 JSON 语法 6.1.3 JSON 的数据结构6.2 Java 中操作 JSON 数据 6.2.1 Jar包下载 ...
- TensorFlow 2.0高效开发指南
Effective TensorFlow 2.0 为使TensorFLow用户更高效,TensorFlow 2.0中进行了多出更改.TensorFlow 2.0删除了篇冗余API,使API更加一致(统 ...
- JDK8-》 ⽅法引⽤与构造函数引⽤
以前⽅法调⽤ 对象.⽅法名 或者 类名.⽅法名 jdk1.8提供了另外⼀种调⽤⽅式 :: 说明:⽅法引⽤是⼀种更简洁易懂的lambda表达式,操作符是双冒号::,⽤来直接访问类或者实例 已经存在的 ...