Example #1
0
            public string Format(string format, object arg, IFormatProvider formatProvider)
            {
                if (arg == null)
                {
                    return(string.Empty);
                }
                if (arg is byte)
                {
                    return(NumberFormatter.Format(format, (int)(byte)arg, formatProvider));
                }
                if (arg is short)
                {
                    return(NumberFormatter.Format(format, (int)(short)arg, formatProvider));
                }
                if (arg is int)
                {
                    return(NumberFormatter.Format(format, (int)arg, formatProvider));
                }
                if (arg is long)
                {
                    return(NumberFormatter.Format(format, (long)arg, formatProvider));
                }
                if (arg is float)
                {
                    return(NumberFormatter.Format(format, (float)arg, formatProvider));
                }
                if (arg is double)
                {
                    return(NumberFormatter.Format(format, (double)arg, formatProvider));
                }
                if (arg is Type)
                {
                    return(((Type)arg).FullName);
                }
                if (arg is string)
                {
                    return((string)arg);
                }

                // default handling.
                var formattable = CompilerHelper.AsNativeIFormattable(arg);

                if (formattable != null)
                {
                    return(formattable.ToString(format, formatProvider));
                }
                return(arg.ToString());
            }