我想根据属于简单类型层次结构的另一个实例的类型来实例化一个类的实例。
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());
关于c# - 创建与现有对象具有相同类型的类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18127495/