public PrintfFormat(string fmtArg)
        {
            int ePos = 0;
            ConversionSpecification sFmt = null;
            string unCS = NonControl(fmtArg, 0);
            if (unCS != null)
            {
                sFmt = new ConversionSpecification();
                sFmt.setLiteral(unCS);
                vFmt.Add(sFmt);
            }
            while (cPos != -1 && cPos < fmtArg.Length)
            {
                for (ePos = cPos + 1; ePos < fmtArg.Length; ePos++)
                {
                    char c = '\x0';
#if CODE_ANALYSIS
                    c = fmtArg.CharAt(ePos);
#else
                    c = fmtArg[ePos];
#endif
                    if (c == 'i')
                        break;
                    if (c == 'd')
                        break;
                    if (c == 'f')
                        break;
                    if (c == 'g')
                        break;
                    if (c == 'G')
                        break;
                    if (c == 'o')
                        break;
                    if (c == 'x')
                        break;
                    if (c == 'X')
                        break;
                    if (c == 'e')
                        break;
                    if (c == 'E')
                        break;
                    if (c == 'c')
                        break;
                    if (c == 's')
                        break;
                    if (c == '%')
                        break;
                }
                ePos = Math.Min(ePos + 1, fmtArg.Length);
                sFmt = new ConversionSpecification(fmtArg.Substring(cPos, ePos));
                vFmt.Add(sFmt);
                unCS = NonControl(fmtArg, ePos);
                if (unCS != null)
                {
                    sFmt = new ConversionSpecification();
                    sFmt.setLiteral(unCS);
                    vFmt.Add(sFmt);
                }
            }
        }