Jeff wrote:
> On Mon, Aug 9, 2010 at 11:25 AM, Dino Viehland <di...@microsoft.com> wrote:
> > clr.LoadClrExtensions(namespace)
> 
> I'd like to paint the bikeshed 'clr.ImportExtensions()', if possible,
> and have it take either a namespace or a static class - i.e.
> System.Linq or System.Linq.Enumerable.
> 
>     import clr, System
>     clr.ImportExtensions(System.Linq)
> 
> Looks fine to me.
> 
> For a shorter syntax, I would prefer
> 
>     from System.Linq.Enumerable import *
> 
> and have it pull in any extension methods in that class. My only
> concern is that it's a little too magical, and doesn't match the usual
> behaviour of an import statement.

Ok, +1 on ImportExtensions for the name form me.

There's also 1 limitation which occurs to me:  We will only allow extension
methods which don't clash on the base class to appear.  So for example if you
define:

class MyClass : IEnumerable<object> {
        public void Where() {
        }
}

Then the extension Where won't be available.  Unfortunately I think that's the
only way we can really do this efficiently.  Of course you'll still be able to
call System.Linq.Enumerable.Where.

Sound reasonable?
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to