Ejemplo n.º 1
0
        /// <summary>
        ///     The Function which does all the heavy lifting.
        /// </summary>
        /// <param name="format">A composite format string</param>
        /// <param name="flags">The flags which specify how the <paramref name="format" /> string should be interpreted.</param>
        /// <param name="arguments">The arguments to format the <paramref name="format" /> parameter with.</param>
        /// <returns>System.String.</returns>
        public static string FormatString(string format, FormatTokenFlags flags, params object[] arguments)
        {
            switch (flags)
            {
            case FormatTokenFlags.IndexToken:
                return(string.Format(format, arguments));

            case FormatTokenFlags.SpecifierToken:
                var stringBuilder = new StringBuilder();
                for (int i = 0,
                     argIndex = 0;
                     i < format.Length;
                     i++)
                {
                    stringBuilder.Append(format[i] == '%' && argIndex < arguments.Length
                            ? "{" + argIndex++ + "}"
                            : format.Substring(i, 1));
                }
                return(string.Format(stringBuilder.ToString(), arguments));

            case FormatTokenFlags.MemberToken:
                return
                    (string.Format(
                         _regexReformatter(name => name == "0" ? arguments[0] : DataBinder.Eval(arguments[0], name),
                                           format, arguments), arguments));

            default:
                return(format);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     The Function which does all the heavy lifting.
        /// </summary>
        /// <param name="format">A composite format string</param>
        /// <param name="flags">The flags which specify how the <paramref name="format" /> string should be interpreted.</param>
        /// <param name="arguments">The arguments to format the <paramref name="format" /> parameter with.</param>
        /// <returns>System.String.</returns>
        public static string FormatString(string format, FormatTokenFlags flags, params object[] arguments)
        {
            switch (flags)
            {
                case FormatTokenFlags.IndexToken:
                    return string.Format(format, arguments);

                case FormatTokenFlags.SpecifierToken:
                    var stringBuilder = new StringBuilder();
                    for (int i = 0,
                             argIndex = 0; i < format.Length; i++)
                    {
                        stringBuilder.Append(format[i] == '%' && argIndex < arguments.Length ? "{" + argIndex++ + "}" : format.Substring(i, 1));
                    }
                    return string.Format(stringBuilder.ToString(), arguments);

                case FormatTokenFlags.MemberToken:
                    return string.Format(_regexReformatter(name => (name == "0") ? arguments[0] : DataBinder.Eval(arguments[0], name), format, arguments), arguments);

                default:
                    return format;
            }
        }