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
