[Ironruby-core] An Issue with CLR Delegates

Shay Friedman lists at ruby-forum.com
Tue Jun 9 08:34:52 EDT 2009


Hi,

Today I'm playing with CLR delegates :)

I've run into a strange behavior.

Take a look at the next C# block:
-----------
public class Printer
{
  public delegate void PrintValue(string value);
}
-----------

Assuming the above is the content of assembly.dll, take a look at the
next IR console output:

-----------
>>> require "assembly.dll"
=> true
>>> p = Printer::PrintValue.new { |x| puts x }
=> Printer+PrintValue
>>> p("dsfs")
"dsfs"
=> nil
>>> d = Printer::PrintValue.new { |x| puts x }
=> Printer+PrintValue
>>> d("dsfd")
:0: undefined method `d' for main:Object (NoMethodError)
------------

Why does p work and d doesn't?

BTW, I see that delegates are converted to something called LightLambda.
What is that?

Many thanks!
Shay.
----------------------------
http://www.ironshay.com
Follow me: http://twitter.com/ironshay
-- 
Posted via http://www.ruby-forum.com/.


More information about the Ironruby-core mailing list