public override string /*!*/ ToString() { #if DEBUG && !SILVERLIGHT && CLR2 if (RubyBinder._DumpingExpression) { return(RubyUtils.ObjectBaseToMutableString(this).ToString()); } #endif var site = _immediateClass.ToStringSite; object toStringResult = site.Target(site, this); if (ReferenceEquals(toStringResult, RubyOps.ForwardToBase)) { return(((IRubyObject)this).BaseToString()); } string str = toStringResult as string; if (str != null) { return(str); } var mstr = toStringResult as MutableString ?? RubyUtils.ObjectToMutableString(_immediateClass.Context, toStringResult); return(mstr.ToString()); }