我想基于作为简单类型层次结构一部分的另一个实例的类型实例化一个类的实例。
public abstract class Base
{
}
public class Derived1 : Base
{
}
public class Derived2 : Base
{
}
使用以下代码很容易做到
Base d1 = new Derived1();
Base d2;
if (d1 is Derived1)
{
d2 = new Derived1();
}
else if (d1 is Derived2)
{
d2 = new Derived2();
}
但是,是否可以if...else if...
通过(例如)使用反射来获取d1
(在我的示例中)构造函数并使用它来实例化任何d1
可能发生的其他类型的实例而无需使用链来实现此目的?
d2 = (Base)Activator.CreateInstance(d1.GetType());
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句