On Tue, Jun 30, 2009 at 10:30 PM, Yopmaster<
trouve.antoine@...> wrote:
> I think your issue is due to another huge difference between Mono and .NET
> which leads to this kind of error. Here is an example:
>
> Let us consider "Human" and "Child" so that "Child" is derived from "Human":
>
> class Child : Human {}
>
> If now you create the List of type
>
> List<Child> children;
>
> In .NET, "children" will also implement the type "List<Human>":
>
> children is List<Child>
> >>> true
> children is List<Human>
> >>> true
This is incorrect. List<Subclass> cannot be cast to List<Superclass> on .NET.
Some examples like this can be solved by generic
covariance/contravariance in .NET 4.0. See
http://themonkeysgrinder.blogspot.com/2009/02/c-4-is-now.html for some
explanations. However, since System.Generic.Collections.List<T> both
accepts and returns objects of type T, I don't believe it could be
made variant.
--
Michael Hutchinson
http://mjhutchinson.com_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@...
http://lists.ximian.com/mailman/listinfo/mono-devel-list