泛型简化代码量

下是我在项目中通过泛型来简化工作的一个Demo,记录一下:

using System;
using System.Collections.Generic;
 
namespace MyCollection
{
    public class CBase
    {
        private string id = "CBase";
        public virtual string Id
        {
            get { return id; }
            set { id = value; }
        }
    }
 
    public class CActor : CBase
    {
        private string id = "CActor";
        public override string Id
        {
            get { return id; }
            set { base.Id = value; }
        }
 
        public string resource;
    }
 
    public class CBullet : CBase
    {
        private string id = "CBullet";
        public override string Id
        {
            get { return id; }
            set { base.Id = value; }
        }
        public string effect;
    }
 
    public class GenericDemo
    {
        public static CBullet MBullet = new CBullet();
        public static CActor MActor = new CActor();
        public static Dictionary<string, CBase> dict = new Dictionary<string, CBase>();
 
        public static T GetInfo<T>(string id) where T : CBase
        {
            CBase mBase;
            if (dict.TryGetValue(id, out mBase))
            {
                return (T)mBase;
            }
            return null;
        }
        public static void Main(string[] args)
        {
            //dict = new Dictionary<string, CBase>();
            dict.Add("actor", MActor);
            dict.Add("bullet", MBullet);
            CActor actor1 = GetInfo<CActor>("actor");
            CBullet bullet1 = GetInfo<CBullet>("bullet");
            Console.WriteLine("T= \"{0}\" ,id={1} \nT= \"{2}\" ,id={3}", actor1.GetType(), actor1.Id, bullet1.GetType(), bullet1.Id);
        }
    }
}

程序的运行结果

IL代码如下

转载于:https://www.cnblogs.com/zhaoqingqing/p/3953363.html

C#泛型简化代码量示例相关推荐

  1. 简单来说一下java中的泛型,ssh中dao层使用会简化代码量

    原来仅仅是听老师说泛型特别好用,但是后来一直弄android用的泛型就比較少了.但是感觉它真的非常重要,于是花了一下午的时间写了个demo.好,老规矩.上代码: 首先,sysout是个工具,可是用着不 ...

  2. A__Java为数据结构提供的实用包的运用(减少代码量)---更新中ing

    Java为数据结构提供的实用包 一.引言: 学习了近一个学期的Java数据结构,有一个问题让我很头疼,因为数据结构方法的复现需要很长的一段代码 ,而我的学校呢,是一个喜欢考操作以及实践的学校,所以,很 ...

  3. Java必学的工具库,让你的代码量减少90%

    来源:toutiao.com/ i6943239541448917512 1. Java自带工具方法 1.1 List集合拼接成以逗号分隔的字符串 1.2 比较两个字符串是否相等,忽略大小写 1.3 ...

  4. Java必会的工具库,让你的代码量减少90%

    以下文章来源方志朋的博客,回复"666"获面试宝典 工作很多年后,才发现有很多工具类库,可以大大简化代码量,提升开发效率,初级开发者却不知道.而这些类库早就成为了业界标准类库,大公 ...

  5. 代码量减少90%,Java程序员必会的工具库

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 工作很多年后,才 ...

  6. Java 必会的工具库,让你的代码量减少90%

    点击关注公众号,回复"1024"获取2TB学习资源! 工作很多年后,才发现有很多工具类库,可以大大简化代码量,提升开发效率,初级开发者却不知道.而这些类库早就成为了业界标准类库,大 ...

  7. C++数组求和:关于accumulate函数的使用,简化编写代码量的方法

    C++数组求和:新手实用技巧,简化编写代码量的方法 使用自带的库函数 accumulate 的方法 首先:accumlate 所在头文件是:<numeric> #include <i ...

  8. Gson直接将json转list示例 (TypeToken)以及通过内联函数结合reified简化代码

    为了演示,我们新建一个简单的数据类Person 数据类Person data class Person(var name: String = "", var age: Int = ...

  9. 前端面试题----百题大战(超详细哦,包含代码和示例哦,记得一键三连哦,持续更新中ing...)

    你在前端开发中使用过哪些框架和库?简要介绍一下它们和它们的优点和缺点. Vue.js:Vue.js 是一个渐进式 JavaScript 框架,它通过组合各种特性和插件,支持更加灵活的功能开发和定制化, ...

最新文章

  1. 7-2一元多项式的乘法与加法运算
  2. 【算法数据结构Java实现】Java实现动态规划(背包问题)
  3. Android图像变化
  4. eureka服务下线事件监听(自定义处理逻辑)
  5. eclipse 连接mysql_eclipse连接MySQL
  6. 阿里云服务器配置开发环境第五章:Centos7.3切换为iptables防火墙
  7. 全网首秀,我用动画展现Pycharm十大实用技巧
  8. php 辅助函数,辅助函数 - Laravel 5.8 中文文档手册 - php中文网手册
  9. 如何防止抓包软件抓取我们网页的信息?
  10. 影视】100种说爱你的方式~
  11. jmeter-json提取器提取数据
  12. SpringBoot2.2.X整合ElasricSearch7.8
  13. 北理大编程作业:确定母亲节
  14. 4. Python函数
  15. SpringCloud 整合 Dubbo
  16. mes系统和plc通讯案例_MES与PLC实时通信系统研究
  17. windows无法格式化u盘_u盘无法格式化怎么办 DOS下u盘格式化方法【详解】
  18. 什么是UI Path?
  19. Java Web框架play framework的下载与环境变量配置
  20. OpenAI 推出漏洞赏金计划,最高奖励 2 万美元;京东零售开启 5 年来最大组织变革;​Django 4.2|极客头条

热门文章

  1. 8 基于管道的持久化存储 scrapy
  2. c/c++基础 输入函数/流
  3. ASP.NET MVC 防止 CSRF 的方法
  4. 编译安装openresty+mariadb+php7
  5. 使用Python脚本批量裁切栅格
  6. JAVA NIO 内存泄露
  7. 实训C++语言设计——Date日期系统实现
  8. Notepad2 一个很不错的记事本
  9. 天天都在说,无服务器计算到底是什么?
  10. 直播APP开发:直播人数是否该有限制