I've been looking into Generic IL and Generic C# recently
for the Portable.NET project, and I have a class library
question that hopefully someone in the SSCLI community can
help out with.

In the Gyro examples, there are two different implementations
of generic collection classes.  The first is "GCollections"
in the "gyro/samples/generics/gcollections" directory.  This
has types named "ICollection<T>", "ArrayList<T>", etc.

The second is in the "gyro/samples/generics/gnfatodfa" directory
and has names like "IGCollection<T>", "GArrayList<T>".

Is there an "official" position on which style of collection
classes will become the standard ones and what their names will
be?  Or is it still up in the air as to what they will be called?

Also, is there any plan to unify the generic collections with
regular collections?  e.g. being able to pass an "ICollection<T>"
to existing API's that expect an "ICollection"?  I see three ways
of doing this: (a) the generic interfaces inherit from the
non-generic ones, (b) the generic interfaces export a method
called "GetAdapter()" which wraps up the generic collection,
or (c) wrapper classes like "CollectionAdapter<T>" that are
explicitly created by the user when needed.

Note: I don't want to start a religious war over the best way
to design a set of generic collection classes.  Pick one and
I'll follow that - it makes no difference to me. :-)

On the Portable.NET front, I'm currently implementing support
for Generic IL in the metadata routines, with the CLR to follow
fairly shortly.  The C# compiler extensions will follow after
that.  So, hopefully we will be able to do interoperability
testing between Portable.NET and Gyro soon.

Cheers,

Rhys Weatherley.
http://www.southern-storm.com.au/portable_net.html

Reply via email to