微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#泛型简化代码量示例

泛型简化代码

下是我在项目中通过泛型来简化工作的一个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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐