C# 父类代码动态转换子类
Posted plateface
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
以上是关于C# 父类代码动态转换子类的主要内容,如果未能解决你的问题,请参考以下文章