C#中实例化类从字符串 [英] c# instantiate class from string

查看:544
本文介绍了C#中实例化类从字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个抽象类,我想它initalize来扩展它的类。

I have an abstract class and I want to initalize it to a class that extends it.

我有子类的字符串名字。

I have the child classes name as a string.

除了这个...

String childClassString;
MyAbstractClass myObject;

if (childClassString = "myExtenedObjectA")
    myObject = new ExtenedObjectA();
if (childClassString = "myExtenedObjectB")
    myObject = new ExtenedObjectB();

我怎样才能做到这一点?基本上,我怎么摆脱这里的if语句呢?

How can I do this? Basically how do I get rid of the if statements here?

推荐答案

看Activator.CreateInstance()。

Look at Activator.CreateInstance().

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

var type = Type.GetType("MyFullyQualifiedTypeName");
var myObject = (MyAbstractClass)Activator.CreateInstance(type);

这篇关于C#中实例化类从字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆