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清新相关推荐

  1. ps怎么把一个颜色替换成另一个颜色_图标设计,用PS制作一款小清新的拟物时钟...

    本篇教程通过PS制作一款干净清新的时钟图标教程,做起来也不复杂,但是不管复杂不复杂的东西,都必须动手制作才行,会用到图层样式,图层样式基本上一直是图标或者字体制作的常客,同学们根据教程来学习一下吧,相 ...

  2. 251f与ips屏显示器对比_同样是240Hz高刷新率 有了VA屏你还会选择TN?

    热衷于游戏的网友们都知道,近两年来针对电竞而生的显示器越来越多,而越来越高的刷新率也成为衡量电竞显示器优劣的一大关键参数.目前,240Hz的超高刷新率代表着电竞屏的主流,但在很长的一段时间内它几乎可以 ...

  3. 「机器学习速成」分类,评估指标(TP、FP、TN、FN),ROC曲线和AUC

    https://www.toutiao.com/a6706449645901464078/ 2019-06-25 20:49:47 大家好,今天我们学习[机器学习速成]之 分类,评估指标(TP.FP. ...

  4. 小清新简约风个人简历PPT模板

    说到的个人简历模板最先想到的就是简历word模板,不过今天要和大家分享的是另一种格式的个人简历模板-它就是个人简历PPT模板,用PPT格式制作成的求职简历模板.这是一份小清新简约风格的个人简历PPT模 ...

  5. 公司 表名规则 TN基础表 TR关系表 TL定义表

    公司 表名规则  TN基础表  TR关系表  TL定义表

  6. TP、TN、FP、FN

    True Positive (真正, TP)被模型预测为正的正样本: True Negative(真负 , TN)被模型预测为负的负样本 : False Positive (假正, FP)被模型预测为 ...

  7. 私房库视频学习笔记-小清新BBS系统开发技术归纳

    自己一直在学习PHP开发,前一段时间在51cto上看到私房库孙胜利老师的视频,下载了他的小清新BBS系统开发视频学习.现在把里面的好的运用收集到这儿. 在看了这套视频后先了解整个web项目开发的过程. ...

  8. ++库 照片风格转换风格_怦然心动的小清新风格照片拍摄,这四点很关键

    最近一直在学习日系写真拍摄,相信大家从我发的微头条已经早有知晓.这一拍摄题材,是我以前很少去关注的,自从我在网上看到一组印象颇为深刻的日系写真后,被照片里面真实自然的情感表达.纯净温情的画面所触动,让 ...

  9. 花神游历各国 题解(小清新线段树/树状数组+并查集)

    题面 众所周知,这是一道小清新线段树 然而可以用树状数组水过去且跑得飞快 看到区间开方第一反应肯定是线段树懒标记区间修改之类的,但是这个东西似乎确凿不可维护 所以考虑暴力循环单点修改->T飞 于 ...

最新文章

  1. madvr设置_用Kodi+MadVR播放4k HDR原盘电影方法
  2. 51. Leetcode 106. 从中序与后序遍历序列构造二叉树 (二叉树-二叉树构建)
  3. Apache + PHP 服务
  4. mysql5.7.14安装版教程_MySQL5.7.14下载安装图文教程及MySQL数据库语句入门大全
  5. vim 格式化json
  6. S4HANA里至关重要的建模方式CDS view架构介绍
  7. Linux-No.04 Linux 设置定时任务发送邮件功能
  8. python 绘图的背景颜色不要_matplotlib自定义添加 “哆啦A梦”背景图,这个操作真牛逼!...
  9. JAVASCRIPT:VOID(0)含义解析
  10. VC编程操作Word2010生成表格
  11. extend 和 append 的区别
  12. 学习:使用python+selenium实现路由器登陆账号密码爆破
  13. 认知突围--读书笔记二
  14. 网易互娱笔试题(2021春招)
  15. 360度全景标定方法_一种车辆行驶360度全景行车标定板的制作方法
  16. 用我的计算器吧,我的python计算器贼牛逼
  17. 3d全息投影技术在教学中有什么好处
  18. 硬件篇——阻容一阶滤波电路
  19. 京东、天猫等电商平台产品评价
  20. 如何在CSDN博客左侧添加微博关注

热门文章

  1. delphi 软件在线人数统计_8款值得学习的科研论文作图软件
  2. 高质量的期货研究报告去哪里找?
  3. ( function(){…} )()
  4. Mysql中explain命令查看语句执行概况
  5. java反射--注解的定义与运用以及权限拦截
  6. ubuntu make menuconfig error
  7. [Buzz.Today]2011.06.26
  8. client copy sap论坛上看到的
  9. 荣耀9igoogle模式_iGoogle个性化主页的6种替代方法
  10. css段落缩进_如何缩进Google文档中的段落