当前位置: 首页 > 编程语言 > C#

如何使用反射动态实例化一个类型?分享

时间:2023-04-10 20:34:30 C#

如何使用反射动态实例化一个类型?我需要使用反射动态实例化C#类型。这是我的场景:我正在编写一个基类,它需要实例化一些对象作为其初始化的一部分。基类不知道它应该实例化的对象类型,但派生类知道。所以,我希望派生类在base()调用中将类型传递给基类。代码看起来像这样:MyDerivedClass():base(typeof(Whatever)){}}换句话说,基类将要实例化的对象类型的选择委托给它的派生类型。有人可以帮忙吗?尝试Activator.CreateInstance(Type)http://msdn.microsoft.com/en-us/library/wccyzw83.aspx你正在寻找Activator.CreateInstanceobjectinstance=Activator.CreateInstance(myType);此方法有多种重载,您可以使用构造函数参数或其他信息来查找类型(例如字符串形式的名称)您可能想使用泛型:publicabstractclassMyBaseClasswhereT:new(){protectedMyBaseClass(){TmyObj=newT();//实例化传入类型的对象/*这是我想弄清楚的部分*/}}publicclassMyDerivedClass:MyBaseClass{publicMyDerivedClass(){}}要求whereT:new()支持newT()结构。以上就是C#学习教程:如何使用反射动态实例化一个类型?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: