我有一些遗留代码需要重构。
首先,我有一个子类接口:IChild
。以及实现该接口的一些类,例如:ChildType1 : IChild
,ChildType2 : IChild
和ChildType3 : IChild
。
父级具有子类型属性,如果ChildType1
具有值,则每次只有其中一个被初始化,而ChildType2
和ChildType3
为null
:
class Parent
{
public ChildType1 Type1 { get; set; }
public ChildType2 Type2 { get; set; }
public ChildType3 Type3 { get; set; }
//...
}
IChild
具有一些重要的属性Enum:public interface IChild
{
ImportantEnum MyEnum { get; set; }
//
}
我的问题是:关于以下事实,我不知道会启动哪一种类型,使子
MyEnum
属性可通过父api获得的最佳方法是什么?我愿意进行重构。
最佳答案
在我看来,您需要更改您的Parent
类-根据到目前为止提供的信息,这似乎是使用泛型的理想选择:
class Parent<TChild> where TChild : IChild
{
public TChild Child { get; set; }
}