• 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";
        }
    }
     想要更快更方便的了解相关知识,可以关注微信公众号 
     
  • 相关阅读:
    如何在百度文库里面免费下载东西
    CompareTo
    MySql常用日期函数(转载)
    Oracle之ORDER BY
    Spring之Ioc
    在使用与测绘有关软件中的困难
    HDOJ_1008_Elevator
    HDOJ_1005_Number Sequence
    HDOJ_1004_Let the Balloon Rise
    HDOJ_1003_MaxSum
  • 原文地址:https://www.cnblogs.com/axzxs2001/p/16259773.html
Copyright © 2020-2023  润新知