On Fri, 2007-03-09 at 17:41 -0800, David Mitchell wrote: > You're right...there's no difference in the implementation for the names of > Generic types. The weirdness in the type name that I was seeing comes from > using the fancy new 'yield return' syntax that was introduced in C# 2.0. > > To illustrate, try this block of code in Mono and on .NET:
... > public static IEnumerable<T> EnumerableFromArray<T>(T[] > array) > { > foreach (T t in array) > yield return t; > } This results in the creation of a *compiler-generated* type which implements IEnumerable<T>. > You'll get different results on each platform, although I'm not entirely > certain if the naming convention is part of the C# spec or not. The naming of compiler-generated types is NOT part of the C# spec. The C# spec does control some type naming, such as stipulating that generic types have "`" followed by the number of generic parameters appended to the type name, e.g. `class Foo<T,U> {}' is Foo`2. > I'm looking > into this because I'm trying to get all of the Wintellect.PowerCollections > tests to succeed in Mono (http://www.wintellect.com/PowerCollections.aspx). > > If you download it right now, four of the tests will fail, and the first one > does so because the test makes assumptions about the type name. It sounds like the test is invalid and should be fixed. - Jon _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list