switch类型模式
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类型模式相关推荐
- Go 语言中 switch 类型断言用法
Author mogd 2022-05-09 Update mogd 2022-05-09 Adage Don't live in the past. 目录 Go 语言中 switch 类型断言的用法 ...
- ECALL Switch/Ordinary模式
目录 SGX初始化中,我们就碰到过切换上下文进入Enclave的场景 以[ECMD_INIT_ENCLAVE]为例,先大概描述一下切换上下文进入Enclave的具体过程 普及:ECALL索引值和tRT ...
- java switch 类型_Java switch case数据类型原理解析
这篇文章主要介绍了Java switch case数据类型原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java 中 switch cas ...
- dao层通用封装_层超类型模式:封装多层系统中的通用实现
dao层通用封装 Being one of the cornerstones of OOP, Inheritance is pretty much like a doubled-sided door ...
- 巧用 Spring 自动注入实现策略模式升级版
一.前言 1.1 背景 在工作过程中,有时候需要根据不同的枚举(常量)执行不同的逻辑. 比如不同的用户类型,使用不同的优惠政策:不同的配置变化,走不同的处理逻辑等. 下面模拟一个根据不同用户类型,走不 ...
- 《游戏编程模式》--行为模式--学习
在线阅读地址: 行为模式 · 游戏设计模式 (tkchu.me) 参考文章: GameDesignPattern_U3D_Version/Assets/008BehavioralPatterns at ...
- c#语言swith的用法,C# switch 语句 | Microsoft Docs
switch(C# 参考) 04/09/2019 本文内容 本文介绍 switch 语句. 有关 switch 表达式(在 C# 8.0 中引入)的信息,请参阅 表达式和运算符部分中有关 switch ...
- 基于张量分解和关系约束的多种类型的MicroRNA-疾病预测
今天给大家介绍的文章是"Tensor Decomposition with Relational Constraints for Predicting Multiple Types of M ...
- 设计模式所遵循的原则及模式之间的关系
总原则:开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭.在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果.所以一句话 ...
最新文章
- MySQL 实战 定时备份数据库
- javascript设计模式-组合模式
- layui 动态添加 表格数据
- 图片三:numpy制作雪碧图(如何将多个图片拼接成一张图片)
- 无基础人员转行做机器学习可以吗?
- MyCat分布式数据库集群架构工作笔记0007---Mycat登录
- 课程管理系统c语言程序,课程信息管理系统C语言程序Word版
- new Image().src资源重复请求问题
- [转]vs2010 MSDN文档安装方法
- ASP.NET MVC3官方示例Music Store(音乐商店) --简易中文教程
- java环境安装菜鸟教程,window系统安装Java 配置环境变量 | 菜鸟教程 JDK配置
- php 公众号推送图片尺寸,『微信公众号运营技巧』推送文图片什么尺寸最佳?...
- 小程序转发功能(类似于美团红包转发功能)的简单实现
- 网络棋牌游戏用户群体
- 百练_2801:填词
- Android studio:select process to attach to...找不到debug调试的目录
- java解决兔子_JAVA编程题-用java解决兔子问题
- Surface电池寿命延长
- 设置文字为计算机屏幕保护,win10系统设置炫酷三维文字屏幕保护的具体技巧
- LR---Loadrunner11破解方法