[Ironruby-core] Delegates (agian)
Dermot Hogan
lists at ruby-forum.com
Fri Oct 26 13:38:39 EDT 2007
Curt Hagenlocher wrote:
> On 10/25/07, Dermot Hogan <lists at ruby-forum.com> wrote:
>
>
> I was trying to avoid writing this, but my inner pedant simply won't let
> go. There's a difference between delegates and events. A delegate is
> simply a bound function pointer, and it's perfectly legal to do a
> straightforward assignment as above. An event is basically a published
> endpoint to which you subscribe and unsubscribe by adding and removing
> your
> delegate. The two are obviously related but not the same, and what we
> seem
> to be talking about here specifically involves events.
>
> I feel much better now. :)
Yes. I've lumped them together ... there are two parts to this. First,
the add-assignment (which isn't an assignment or an addition, but we'll
let that pass). I don't really care whether this is a traditional += or
a Ruby like << (which is more logical, I now think) so long as we have a
delegate removal operator as well.
The second part is the delegate constructor syntax, that is how you pass
the name of the event handler itself to the System::EventHandler
constructor. All I want is a reasonable way to doing this without
involving blocks. I'd be quite happy to settle for this:
x << System::EventHandler(self, :y)
whatever it is, the arguments have to be acceptable to the .NET
System::EventHandler API. What I've been trying to point out is that
different languages (VB, C#, IronPython, ...) do this in slightly
different ways, but whatever they do, they don't use anything
convoluted. However they do it, it's clear what's going on.
Dermot
--
Posted via http://www.ruby-forum.com/.
More information about the Ironruby-core
mailing list