任何人都可以解释为什么不继承IList?我在这里看到很多输入,如果我需要为我的对象而不是IList提供自定义集合类,那么最好从Collection继承.这是为什么?为什么人们说不是从IList继承?如果可能请举个例子.
我认为它可能是这样的,所以为什么不使用它作为List提供更多功能:
class FootballTeam : List{ }
Eldho.. 5
这不提供直接答案,可能有概述
IList为您提供实现此功能的灵活性.
public interface IList: ICollection , IEnumerable , IEnumerable { T this[int index] { get; set; } int IndexOf(T item); void Insert(int index, T item); void RemoveAt(int index); }
如果您使用
class FootballTeam : List
,可以扩展您的FootballTeam类中的属性.
理想情况下,当您想要扩展您的收藏时,它是必要的.假设您必须实现AddSort(T项)class FootballTeam : List
如果你使用
class FootballTeam : ILIst
你可能会重新发明轮子Add()
,并且Contains()
应该由你自己实施
我建议使用 Composition over inheritance
class FootballTeam : //So here can use any team base class or anything necessary { public string TeamName; public int RunningTotal private List_players public IEnumerable Players {get;set;} }
更新
我已更新Players
为IEnumerable,因此将具有很大的灵活性.
这不提供直接答案,可能有概述
IList为您提供实现此功能的灵活性.
public interface IList: ICollection , IEnumerable , IEnumerable { T this[int index] { get; set; } int IndexOf(T item); void Insert(int index, T item); void RemoveAt(int index); }
如果您使用
class FootballTeam : List
,可以扩展您的FootballTeam类中的属性.
理想情况下,当您想要扩展您的收藏时,它是必要的.假设您必须实现AddSort(T项)class FootballTeam : List
如果你使用
class FootballTeam : ILIst
你可能会重新发明轮子Add()
,并且Contains()
应该由你自己实施
我建议使用 Composition over inheritance
class FootballTeam : //So here can use any team base class or anything necessary { public string TeamName; public int RunningTotal private List_players public IEnumerable Players {get;set;} }
更新
我已更新Players
为IEnumerable,因此将具有很大的灵活性.