为了账号安全,请及时绑定邮箱和手机立即绑定

给定其字符串名称,如何实例化一个类?

给定其字符串名称,如何实例化一个类?

C#
慕桂英546537 2019-12-27 15:16:15
我有一个抽象类,我想将其初始化为扩展它的类。我有子类名称作为字符串。除此之外...String childClassString;MyAbstractClass myObject;if (childClassString = "myExtenedObjectA")    myObject = new ExtenedObjectA();if (childClassString = "myExtenedObjectB")    myObject = new ExtenedObjectB();我怎样才能做到这一点?基本上,我该如何摆脱if语句?
查看完整描述

3 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

查看Activator.CreateInstance()。


myObject = (MyAbstractClass)Activator.CreateInstance("AssemblyName", "TypeName");

要么


var type = Type.GetType("MyFullyQualifiedTypeName");

var myObject = (MyAbstractClass)Activator.CreateInstance(type);


查看完整回答
反对 回复 2019-12-27
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

我相信这应该有效:


myObject = (MyAbstractClass)Activator.CreateInstance(null, childClassString);

第null一个参数中的in默认为当前执行的程序集。有关更多参考:MSDN


编辑:忘记投射到 MyAbstractClass


查看完整回答
反对 回复 2019-12-27
  • 3 回答
  • 0 关注
  • 498 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信