加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

C#泛型简化代码量示例

发布时间:2021-05-21 06:58:38 所属栏目:大数据 来源: https://www.jb51.cc
导读:泛型简化代码量 下是我在项目中通过泛型来简化工作的一个Demo,记录一下: using System; using System.Collections.Generic; ? namespace MyCollection { public class CBase { private string id = "CBase" ; virtual string Id { get { return id; } set {

泛型简化代码量

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

using System;
using System.Collections.Generic;
?
namespace MyCollection
{
    public class CBase
    {
        private string id = "CBase";
        virtual string Id
        {
            get { return id; }
            set { id = value; }
        }
    }
?
    class CActor : CBase
    {
        "CActor";
        override return id; }
            set { base.Id = value; }
        }
?
        string resource;
    }
?
    class CBullet : CBase
    {
        "CBullet";
        value; }
        }
        string effect;
    }
?
    class GenericDemo
    {
        static CBullet MBullet = new CBullet();
        static CActor MActor = new CActor();
        static Dictionary<string,CBase> dict = new Dictionary<static T GetInfo<T>(string id) where T : CBase
        {
            CBase mBase;
            if (dict.TryGetValue(id,out mBase))
            {
                return (T)mBase;
            }
            return null;
        }
        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);
        }
    }
}

程序的运行结果

image

IL代码如下

image

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读