我有一个Number由类继承的基类One,Two和Three.
我有一个房产
public Number SomeNumber{get;set;}
Run Code Online (Sandbox Code Playgroud)
起初,我已SomeNumber任One,Two或Three(值会随机生成).
后来,我想设置SomeNumber一个与旧类相同类型的新类.这可能吗?如果是这样,怎么样?
在初始化时,SomeNumber设置为One
稍后在程序中,我想设置SomeNumber一个新的实例One.
我将在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)
它不需要反射,因此是类型安全的,如果构造函数需要一些,它将支持参数.
| 归档时间: |
|
| 查看次数: |
836 次 |
| 最近记录: |