你能根据传递的参数构造一个不同的派生类吗?

Guy*_*ito 2 c# polymorphism inheritance

我想知道这样的事情是否可能......

class Thing
{
        public Thing(int i)
        {
        }
}

class DerivedThing : Thing
{
        public DerivedThing(int i)
        {
        }
}

_thing = new Thing(0)

_derivedthing  = new Thing(1)
Run Code Online (Sandbox Code Playgroud)

如果你传递0你得到一个东西,如果你传递1你得到一个DerivedThing这是不完整的,只是一个插图..但基本上我想知道是否/如何根据传递的参数的值返回不同的派生类到基类构造函数?或者你只需​​要另外一些代码来决定调用哪个构造函数?

Dar*_*usz 7

回答你的问题:不,这是不可能的.但...

你实际上在寻找一种Factory模式.您可以在工厂方法中轻松添加区分if/case并且仍然具有相对干净的代码.

工厂模式描述