<div>1. ConvertToString is much more readable.</div>
<div>&nbsp;</div>
<div>2. The JITter could theoretically eliminate one or more method calls anyway (though I can&#39;t say that I know for sure that it does).</div>
<div>&nbsp;</div>
<div>3. We haven&#39;t done anything to optimize this new version of MutableString yet.&nbsp; In particular, we might find that getting a string from&nbsp;the same&nbsp;MutableString multiple times is a frequent enough operation that we&#39;ll cache the results after the first call.&nbsp; It&#39;s much less likely that such an optimization would be made for the output of Slice.</div>

<div>&nbsp;</div>
<div>&nbsp;</div>
<div>My personal rule-of-thumb is that the code you write should clearly express your intent as cleanly as possible.&nbsp; We write code not just for the&nbsp;computer but also for other humans. Performance issues should be considered up front only when&nbsp;considering higher-level design, and for lower-level code are best identified later on through profiling.</div>

<div><br>&nbsp;</div>
<div class="gmail_quote">On Sun, May 11, 2008 at 5:52 AM, Peter Bacon Darwin &lt;<a href="mailto:bacondarwin@googlemail.com">bacondarwin@googlemail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div lang="EN-GB" vlink="purple" link="blue">
<div>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">Magic!</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">Now the next question is should I be using:</span></p>
<p><span style="FONT-SIZE: 8pt; COLOR: #1f497d">mutableString.ConvertToString()</span><span style="FONT-SIZE: 11pt; COLOR: #1f497d"> or </span><span style="FONT-SIZE: 8pt; COLOR: #1f497d">mutableString.GetStringSlice(0)</span><span style="FONT-SIZE: 11pt; COLOR: #1f497d"></span></p>

<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">to get hold of a CLR string for passing to a .NET method.</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">Both end up calling </span><span style="FONT-SIZE: 8pt; COLOR: #1f497d">Content.GetStringSlice(...)</span><span style="FONT-SIZE: 11pt; COLOR: #1f497d"> anyway but the second one seems to go through slightly fewer method calls.&nbsp; My feeling is the former is more intuitive.</span></p>

<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">Pete</span></p>
<p><span style="FONT-SIZE: 11pt; COLOR: #1f497d">&nbsp;</span></p>
<div style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
<p><b><span lang="EN-US" style="FONT-SIZE: 10pt">From:</span></b><span lang="EN-US" style="FONT-SIZE: 10pt"> <a href="mailto:ironruby-core-bounces@rubyforge.org" target="_blank">ironruby-core-bounces@rubyforge.org</a> [mailto:<a href="mailto:ironruby-core-bounces@rubyforge.org" target="_blank">ironruby-core-bounces@rubyforge.org</a>] <b>On Behalf Of </b>Curt Hagenlocher<br>
<b>Sent:</b> Sunday,11 May 11, 2008 13:38<br><b>To:</b> <a href="mailto:ironruby-core@rubyforge.org" target="_blank">ironruby-core@rubyforge.org</a><br><b>Subject:</b> Re: [Ironruby-core] (no subject)</span></p></div>
<div>
<div></div>
<div class="Wj3C7c">
<p>&nbsp;</p>
<p style="MARGIN-BOTTOM: 12pt">MutableString.ToSymbol()?</p>
<div>
<p>On Sun, May 11, 2008 at 5:34 AM, Peter Bacon Darwin &lt;<a href="mailto:bacondarwin@googlemail.com" target="_blank">bacondarwin@googlemail.com</a>&gt; wrote:</p>
<div>
<div>
<p><span style="COLOR: #2b91af">It would be useful to have a helper function to clean up this kind of code.&nbsp; Or is there one and I can&#39;t find it?</span></p>
<p><span style="FONT-SIZE: 8pt; COLOR: #2b91af">&nbsp;</span></p>
<p><span style="FONT-SIZE: 8pt; COLOR: #2b91af">RubyUtils</span><span style="FONT-SIZE: 8pt">.GetConstant(context, rubyClass, <span style="COLOR: #2b91af">SymbolTable</span>.StringToId(mutableString.ConvertToString()), <span style="COLOR: blue">true</span>);</span></p>

<p><span style="FONT-SIZE: 8pt">&nbsp;</span></p>
<p>&nbsp;</p></div></div>
<p style="MARGIN-BOTTOM: 12pt"><br>_______________________________________________<br>Ironruby-core mailing list<br><a href="mailto:Ironruby-core@rubyforge.org" target="_blank">Ironruby-core@rubyforge.org</a><br><a href="http://rubyforge.org/mailman/listinfo/ironruby-core" target="_blank">http://rubyforge.org/mailman/listinfo/ironruby-core</a></p>
</div>
<p>&nbsp;</p></div></div></div></div><br>_______________________________________________<br>Ironruby-core mailing list<br><a href="mailto:Ironruby-core@rubyforge.org">Ironruby-core@rubyforge.org</a><br><a href="http://rubyforge.org/mailman/listinfo/ironruby-core" target="_blank">http://rubyforge.org/mailman/listinfo/ironruby-core</a><br>
<br></blockquote></div><br>