コード例 #1
0
ファイル: RubyObject.cs プロジェクト: kayur/ironpython
        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());
        }