switch的模式中有一种叫类型模式,可以根据switch的类型来执行对应的case,这点在代码中用到的比较频繁,特别是在对应同类型对象的操作中。本例是把一组数据,转成一种格式,就是很简单的使用switch类型模式实现,具体见代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace SwitchDemo;public class ClassOne
{public void Run(){var entity = new YamlFormatCreater();var data = new Data();Console.WriteLine(GetData(entity, data));}public string GetDataFormat(IFormatCreater entity, Data data) => entity switch{CSVFormatCreater csvFormatCreater => csvFormatCreater.ToCSV(data),JsonFormatCreater jsonFormatCreater => jsonFormatCreater.ToJson(data),XMLFormatCreater xmlFormatCreater => xmlFormatCreater.ToXML(data),YamlFormatCreater yamlFormatCreater => yamlFormatCreater.ToYAML(data),_ => "this format is not adapted"};
}public class Data
{public int ID { get; set; }public string? Name { get; set; }public string? Model { get; set; }
}
public interface IFormatCreater
{ }public class CSVFormatCreater : IFormatCreater
{public string ToCSV(Data data){return "To CSV";}
}
public class JsonFormatCreater : IFormatCreater
{public string ToJson(Data data){return "To JSON";}
}
public class XMLFormatCreater : IFormatCreater
{public string ToXML(Data data){return "To XML";}
}
public class YamlFormatCreater : IFormatCreater
{public string ToYAML(Data data){return "To YAML";}
}

switch类型模式相关推荐

  1. Go 语言中 switch 类型断言用法

    Author mogd 2022-05-09 Update mogd 2022-05-09 Adage Don't live in the past. 目录 Go 语言中 switch 类型断言的用法 ...

  2. ECALL Switch/Ordinary模式

    目录 SGX初始化中,我们就碰到过切换上下文进入Enclave的场景 以[ECMD_INIT_ENCLAVE]为例,先大概描述一下切换上下文进入Enclave的具体过程 普及:ECALL索引值和tRT ...

  3. java switch 类型_Java switch case数据类型原理解析

    这篇文章主要介绍了Java switch case数据类型原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java 中 switch cas ...

  4. dao层通用封装_层超类型模式:封装多层系统中的通用实现

    dao层通用封装 Being one of the cornerstones of OOP, Inheritance is pretty much like a doubled-sided door ...

  5. 巧用 Spring 自动注入实现策略模式升级版

    一.前言 1.1 背景 在工作过程中,有时候需要根据不同的枚举(常量)执行不同的逻辑. 比如不同的用户类型,使用不同的优惠政策:不同的配置变化,走不同的处理逻辑等. 下面模拟一个根据不同用户类型,走不 ...

  6. 《游戏编程模式》--行为模式--学习

    在线阅读地址: 行为模式 · 游戏设计模式 (tkchu.me) 参考文章: GameDesignPattern_U3D_Version/Assets/008BehavioralPatterns at ...

  7. c#语言swith的用法,C# switch 语句 | Microsoft Docs

    switch(C# 参考) 04/09/2019 本文内容 本文介绍 switch 语句. 有关 switch 表达式(在 C# 8.0 中引入)的信息,请参阅 表达式和运算符部分中有关 switch ...

  8. 基于张量分解和关系约束的多种类型的MicroRNA-疾病预测

    今天给大家介绍的文章是"Tensor Decomposition with Relational Constraints for Predicting Multiple Types of M ...

  9. 设计模式所遵循的原则及模式之间的关系

    总原则:开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭.在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果.所以一句话 ...

最新文章

  1. MySQL 实战 定时备份数据库
  2. javascript设计模式-组合模式
  3. layui 动态添加 表格数据
  4. 图片三:numpy制作雪碧图(如何将多个图片拼接成一张图片)
  5. 无基础人员转行做机器学习可以吗?
  6. MyCat分布式数据库集群架构工作笔记0007---Mycat登录
  7. 课程管理系统c语言程序,课程信息管理系统C语言程序Word版
  8. new Image().src资源重复请求问题
  9. [转]vs2010 MSDN文档安装方法
  10. ASP.NET MVC3官方示例Music Store(音乐商店) --简易中文教程
  11. java环境安装菜鸟教程,window系统安装Java 配置环境变量 | 菜鸟教程 JDK配置
  12. php 公众号推送图片尺寸,『微信公众号运营技巧』推送文图片什么尺寸最佳?...
  13. 小程序转发功能(类似于美团红包转发功能)的简单实现
  14. 网络棋牌游戏用户群体
  15. 百练_2801:填词
  16. Android studio:select process to attach to...找不到debug调试的目录
  17. java解决兔子_JAVA编程题-用java解决兔子问题
  18. Surface电池寿命延长
  19. 设置文字为计算机屏幕保护,win10系统设置炫酷三维文字屏幕保护的具体技巧
  20. LR---Loadrunner11破解方法

热门文章

  1. Java记录 -6- 流程控制语句
  2. MSSQLSERVER启动不了,报SQL Server 无法生成 FRunCM 线程
  3. c#开发-基础知识及有用技巧(一)
  4. linux 信号_Linux的信号和线程
  5. Java泛型主题讨论
  6. ubuntu 配置mycat
  7. Win10 jdk的安装以及环境变量的配置,及需要注意的坑
  8. 数据库、表、表内容增删改查
  9. css定位positon
  10. Java基础 深拷贝浅拷贝