itemprop="text">
What is the fastest way to implement a
new class that inherits from
List
?
class
Animal {}
class Animals : List {} //
(1)
One
problem I've encountered: By simply doing (1), I've found
that I'm not getting the benefit of inheriting any constructors from
List
.
In the
end, I'd like Animals
to behave a lot like a
List
(e.g., can be constructed, compatibility with
Linq). But in addition, I'd also like to be able to add my own custom
methods.
If you want to create a
publicly exposed animal collection you should not inherit
from List
and instead inherit from href="https://msdn.microsoft.com/en-us/library/ms132397.aspx" rel="nofollow
noreferrer">Collection
and use the
postfix Collection
in the class name. Example:
AnimalCollection :
Collection
.
This is
supported by the href="https://blogs.msdn.microsoft.com/kcwalina/2004/09/28/design-guidelines-digest/"
rel="nofollow noreferrer">framework design guidelines, more
specifically:
DO NOT use ArrayList
,
List
,
Hashtable
, or Dictionary
in
public APIs. Use Collection
,
ReadOnlyCollection
,
KeyedCollection
, or
CollectionBase
subtypes instead. Note
that the generic collections are only
supported in the Framework version 2.0
and
above.
No comments:
Post a Comment