C# 在两个子类中存储不同类型的正确方法
我在C语言中工作,我正试图编写一个抽象的三角形层次结构,它包含两个子类:Triangle和SpecialTriangle 三角形是由直线组成的,而特殊三角形是由特殊直线组成的 我可以想出许多方法将线存储在三角形中: AbstractTriangle包含一个AbstractLine列表 AbstractTriangle包含一个ILine列表 ITriangle有一个ILine列表的访问器,Triangle和SpecialTriangle负责自己的Line或SpecialLine列表 处理这些层次结构的正确、最优雅的方式是什么C# 在两个子类中存储不同类型的正确方法,c#,inheritance,interface,composition,C#,Inheritance,Interface,Composition,我在C语言中工作,我正试图编写一个抽象的三角形层次结构,它包含两个子类:Triangle和SpecialTriangle 三角形是由直线组成的,而特殊三角形是由特殊直线组成的 我可以想出许多方法将线存储在三角形中: AbstractTriangle包含一个AbstractLine列表 AbstractTriangle包含一个ILine列表 ITriangle有一个ILine列表的访问器,Triangle和SpecialTriangle负责自己的Line或SpecialLine列表 处理这些层次结
我需要牺牲返回具体类型行的三角形才能正常工作吗?使用泛型而不是继承:
class Triangle<T> where T: ILine
{
List<T> edges;
···
}
然后将其实例化为
Triangle<Line>
或
Triangle<SpecialLine>