在下面的代码中,我希望根据另一个类的类型返回派生类,这是一种更优雅的方式.
if (option_ is Rectangle)
{
modelInputs = new Foo();
}
else if (option_ is Circle)
{
modelInputs = new Bar();
}
else if (option_ is Triangle)
{
modelInputs = new Bar2();
}
Run Code Online (Sandbox Code Playgroud)
有Rectangle,Circle和Triangle实现IHasModelInput:
interface IHasModelInput
{
IModelInput GetModelInput();
}
Run Code Online (Sandbox Code Playgroud)
那么你可以做到
IModelInput modelInputs = option_.GetModelInput();
Run Code Online (Sandbox Code Playgroud)