Tuesday, 7 November 2017

c# - Inheriting from List

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.



Answer




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

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print ...