[Ironruby-core] Comparing CLR strings and Ruby strings - a slightly surprising behaviour

Meinrad Recheis meinrad.recheis at gmail.com
Tue Mar 3 17:11:42 EST 2009

On Tue, Mar 3, 2009 at 9:46 PM, Thibaut Barrère
<thibaut.barrere at gmail.com>wrote:

> Hi,
> while writing specs for Magic, I noticed that:
> instance_from(MenuItem, "Hello").text.*to_s*.should == "Hello"
> to_s is required to get the assertion to pass. The following will return
> false:
> button = Button.new
> button.text = "Hello"
> puts button.text == "Hello"
> So I guess that CLR strings cannot be compared to Ruby strings unless to_s
> is applied.

I have stumbled on this too and was very surprised. This problem does not
exist in IronPython (does it? please correct me if I am wrong). The behavior
I was expecting is that "on the ruby" side all strings are (or at least
behave exactly like) ruby strings, even if they come from .NET and are
automatically converted to clr-strings when passed into clr methods.

-- henon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20090303/5adf94f1/attachment.html>

More information about the Ironruby-core mailing list