我的代码使用了一个带有基类的列表,我稍后将其转换为它们各自的派生类型。我达到了一个点,我认为我可以为基类创建一个构造函数,该构造函数将确定它应该是什么类型并将其自身更改为该类型。像这样的东西:
public class BaseClass
{
// Constructor
BaseClass(string Input)
{
if (Input.Substring(0, 5) == "Something")
return new DerivedClass(); // <-- Not allowed
}
}
public class DerivedClass : BaseClass
{
}
这是不允许的,因为构造函数必须返回 void。似乎也不允许更改“this”的类型。我知道这个代码有非常简单的替代方案,但我认为它有一定的优雅,你不觉得吗?