OneOfT1,…,Tn清新
OneOf——其中之一,这是一个泛型类,意思就是这里泛型中的任何一个类都可以,还是看代码吧。
引入包
install-package OneOf
实现一个产品查询,有三种情况,查询到返回;查询不到;查询出错。
[ApiController][Route("[controller]")]public class HomeController : ControllerBase{private readonly ILogger<HomeController> _logger;public HomeController(ILogger<HomeController> logger){_logger = logger;}[HttpGet("/product/{id}")]public IActionResult Get(int id){OneOf<Product, NotFound, SystemError> result = GetProject(id);return result.Match<IActionResult>(product =>{_logger.LogInformation("查询成功");return new JsonResult(product);},notfound =>{_logger.LogInformation("没有查到");return new NotFoundResult();},systemerror =>{_logger.LogError("查询成败");return new StatusCodeResult(500);});}/// <summary>/// 按ID查询产品,有三种返回类型,找到产品返回;按ID查询不到;查询过程发生错误/// </summary>/// <param name="id"></param>public OneOf<Product, NotFound, SystemError> GetProject(int id){try{//这里实现真实查库var num = RandomNumberGenerator.GetInt32(1, 10);if (num % 3 == 0){return new NotFound();}else{return new Product() { ID = id, Name = "手机" };}}catch (Exception exc){_logger.LogCritical(exc, exc.Message);return new SystemError();}}}public class NotFound{}public class SystemError{}public class Product{public int ID { get; set; }public string Name { get; set; }}
可以看到,NotFound,SystemError,Product三个类是没有任何关系的,是独立的类,这里通过OneOf<>,来实现返回任何类型都可以,按照OOP的思路,需要三个类继承一个父类来实现,现在用OneOf<>,把这种继承“解耦”了。
OneOfT1,…,Tn清新相关推荐
- ps怎么把一个颜色替换成另一个颜色_图标设计,用PS制作一款小清新的拟物时钟...
本篇教程通过PS制作一款干净清新的时钟图标教程,做起来也不复杂,但是不管复杂不复杂的东西,都必须动手制作才行,会用到图层样式,图层样式基本上一直是图标或者字体制作的常客,同学们根据教程来学习一下吧,相 ...
- 251f与ips屏显示器对比_同样是240Hz高刷新率 有了VA屏你还会选择TN?
热衷于游戏的网友们都知道,近两年来针对电竞而生的显示器越来越多,而越来越高的刷新率也成为衡量电竞显示器优劣的一大关键参数.目前,240Hz的超高刷新率代表着电竞屏的主流,但在很长的一段时间内它几乎可以 ...
- 「机器学习速成」分类,评估指标(TP、FP、TN、FN),ROC曲线和AUC
https://www.toutiao.com/a6706449645901464078/ 2019-06-25 20:49:47 大家好,今天我们学习[机器学习速成]之 分类,评估指标(TP.FP. ...
- 小清新简约风个人简历PPT模板
说到的个人简历模板最先想到的就是简历word模板,不过今天要和大家分享的是另一种格式的个人简历模板-它就是个人简历PPT模板,用PPT格式制作成的求职简历模板.这是一份小清新简约风格的个人简历PPT模 ...
- 公司 表名规则 TN基础表 TR关系表 TL定义表
公司 表名规则 TN基础表 TR关系表 TL定义表
- TP、TN、FP、FN
True Positive (真正, TP)被模型预测为正的正样本: True Negative(真负 , TN)被模型预测为负的负样本 : False Positive (假正, FP)被模型预测为 ...
- 私房库视频学习笔记-小清新BBS系统开发技术归纳
自己一直在学习PHP开发,前一段时间在51cto上看到私房库孙胜利老师的视频,下载了他的小清新BBS系统开发视频学习.现在把里面的好的运用收集到这儿. 在看了这套视频后先了解整个web项目开发的过程. ...
- ++库 照片风格转换风格_怦然心动的小清新风格照片拍摄,这四点很关键
最近一直在学习日系写真拍摄,相信大家从我发的微头条已经早有知晓.这一拍摄题材,是我以前很少去关注的,自从我在网上看到一组印象颇为深刻的日系写真后,被照片里面真实自然的情感表达.纯净温情的画面所触动,让 ...
- 花神游历各国 题解(小清新线段树/树状数组+并查集)
题面 众所周知,这是一道小清新线段树 然而可以用树状数组水过去且跑得飞快 看到区间开方第一反应肯定是线段树懒标记区间修改之类的,但是这个东西似乎确凿不可维护 所以考虑暴力循环单点修改->T飞 于 ...
最新文章
- madvr设置_用Kodi+MadVR播放4k HDR原盘电影方法
- 51. Leetcode 106. 从中序与后序遍历序列构造二叉树 (二叉树-二叉树构建)
- Apache + PHP 服务
- mysql5.7.14安装版教程_MySQL5.7.14下载安装图文教程及MySQL数据库语句入门大全
- vim 格式化json
- S4HANA里至关重要的建模方式CDS view架构介绍
- Linux-No.04 Linux 设置定时任务发送邮件功能
- python 绘图的背景颜色不要_matplotlib自定义添加 “哆啦A梦”背景图,这个操作真牛逼!...
- JAVASCRIPT:VOID(0)含义解析
- VC编程操作Word2010生成表格
- extend 和 append 的区别
- 学习:使用python+selenium实现路由器登陆账号密码爆破
- 认知突围--读书笔记二
- 网易互娱笔试题(2021春招)
- 360度全景标定方法_一种车辆行驶360度全景行车标定板的制作方法
- 用我的计算器吧,我的python计算器贼牛逼
- 3d全息投影技术在教学中有什么好处
- 硬件篇——阻容一阶滤波电路
- 京东、天猫等电商平台产品评价
- 如何在CSDN博客左侧添加微博关注
热门文章
- delphi 软件在线人数统计_8款值得学习的科研论文作图软件
- 高质量的期货研究报告去哪里找?
- ( function(){…} )()
- Mysql中explain命令查看语句执行概况
- java反射--注解的定义与运用以及权限拦截
- ubuntu make menuconfig error
- [Buzz.Today]2011.06.26
- client copy sap论坛上看到的
- 荣耀9igoogle模式_iGoogle个性化主页的6种替代方法
- css段落缩进_如何缩进Google文档中的段落