static string GetNumeroPorExtenso(string numero) { FactoryNumero fn = new FactoryNumero(); int ordem = numero.Length; string nomeDoNumero = ""; for (int i = 0, ordemAtual = ordem; i < ordem; i++, ordemAtual--) { nomeDoNumero = nomeDoNumero + EscolheEntreEpacoOuE(i, numero[i], ordemAtual); string parteDoNumero = numero.Substring(i, ordem - i); if (Numero.EhIrregular(parteDoNumero)) { nomeDoNumero = nomeDoNumero + new Irregular(parteDoNumero).GetNome(); break; } else { nomeDoNumero = nomeDoNumero + fn.GetNomedoNumero(numero[i], ordemAtual); } } return(nomeDoNumero); }