创建具有与现有对象相同类型的类的实例

理查德·埃夫(Richard Ev)

我想基于作为简单类型层次结构一部分的另一个实例的类型实例化一个类的实例。

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

类变量(不是实例变量)是具有相同类类型的对象的快捷方式吗?

Spring:与现有类具有相同类型的自动装配bean

创建一个返回具有现有类继承关系的不同类型的函数

Scala:具有相同类的对象具有不同的类型?

TypeScript:如何为具有许多相同类型的键和相同类型的值的对象创建接口?

Python,如何创建与随机可迭代对象具有相同类型的可迭代对象

具有多个相同类型实例的构造函数

创建具有相同类型参数的类型变量

相同类型/类的对象是否可能具有不同的数据属性?

从类到具有不同模板类型的相同类的转换

TypeScript:具有相同形状的对象的不同类型

创建具有与类属性相同类型的列表

当序列化具有与该对象相同类型的类成员的对象时,如何解决循环引用

Java如何在不递归的情况下创建具有相同类型子对象的对象?

cpp 具有相同类的相同类型的属性

如何表达具有返回相同类型类值的函数的类型类

将具有不同类型且继承相同类的对象存储在容器中

为所有值都具有相同类型的对象定义类型

是否可以从具有相同键名称但不同类型的值的另一种类型的对象创建一种类型的对象?

在 C++ 中添加将相同类对象返回到现有类的方法

具有相同类型但有不同限制的多个列表属性的类

如何为两个参数都具有相同类型的对编写monad实例?

如何使用泛型类型获取具有相同类型的对象

如何在相同类型的所有已创建对象中将变量设置为相同?

使用LAMBDA表达式获取具有相同类型的对象的对象树的深度

实例化后更新相同类型的所有对象的属性

如何快速创建具有相同类的不同实例的不可变数组

创建新的类,该子类继承具有相同名称的现有类

从现有对象的类型创建对象?