zoukankan      html  css  js  c++  java
  • C# 父类代码动态转换子类

    百度上搜索C# 如何父类运行时转换成子类,没有得到相应答案,突然想起C# 有dynamic类型试试看结果成功了。。。

    以后编写代码类似这样的代码 就可以删减掉了

    if (en.type == EMapEntity.Construction)
                {    
                    en.construction = new ConstructionPOD();
                }
                if (en.type == EMapEntity.Creature)
                {
                    en.creature = new CreaturePOD();
                }


    using System;
    using System.Reflection;
    
    class BaseOrm
    {
        public int hp = 10;
    }
    class RoleOrm : BaseOrm
    {
        public string name = "盘子脸";
    }
    class Program
    {
        static void Main(string[] args)
        {
            string scriptName = "RoleOrm";
            Assembly a = Assembly.GetExecutingAssembly();
            Type t = a.GetType(scriptName, true);
            dynamic obj = Activator.CreateInstance(t);
            Console.WriteLine(obj.hp);
            Console.WriteLine(obj.name);
            RoleOrm r = obj;
            r.name = "plateface";
            Console.WriteLine(r.name);
            Console.ReadLine();
        }
    }
  • 相关阅读:
    LeetCode
    LeetCode
    控制反转(Ioc)
    KMP算法
    *&m与m的区别
    函数指针与函数指针数组的使用方法
    C++四种类型转换
    内存分配:堆内存,栈内存
    汇编 基础
    i++,++i 作为参数
  • 原文地址:https://www.cnblogs.com/plateFace/p/11147453.html
Copyright © 2011-2022 走看看