获取类的类型并实例化它的另一个实例

Kia*_*eng 0 .net c# c#-4.0

我有一个Number由类继承的基类One,TwoThree.

我有一个房产

public Number SomeNumber{get;set;}
Run Code Online (Sandbox Code Playgroud)

起初,我已SomeNumberOne,TwoThree(值会随机生成).

后来,我想设置SomeNumber一个与旧类相同类型的新类.这可能吗?如果是这样,怎么样?

例:

在初始化时,SomeNumber设置为One

稍后在程序中,我想设置SomeNumber一个新的实例One.

Ste*_*ger 7

我将在Number上添加一个抽象的Method CreateInstance,并在其所有具体的子类中实现它.

abstract class Number
{
  abstract Number CreateInstance();
}

class One : Number
{
  override Number CreateInstance()
  {
    return new One();
  }
}
Run Code Online (Sandbox Code Playgroud)

"稍后的"

Number newNumber = SomeNumber.CreateInstance();
Run Code Online (Sandbox Code Playgroud)

它不需要反射,因此是类型安全的,如果构造函数需要一些,它将支持参数.