Pensemos acerca de esta API, si existe. El objetivo es validar previamente una cadena de formato para asegurarse de que String.Format
no se lanzará.
Tenga en cuenta que cualquier cadena que no contiene contiene un formato válido que es una cadena de formato válida, si no intenta insertar ningún reemplazo.
-> Así que tendría que pasar en el número o argumentos que esperamos para reemplazar
Tenga en cuenta que hay un montón de diferentes patrones de formato especialidad, cada uno con un significado específico para los tipos específicos: http://msdn.microsoft.com/en-us/library/system.string.format.aspx
Aunque parece que String.Format
no se lanzará si pasa una cadena de formato que no coincide con su tipo de argumento, el formateador no tiene sentido en tales casos. p.ej. String.Format("{0:0000}", "foo")
-> Por lo tanto, una API de este tipo sería realmente útil solo si pasa los tipos de los args también.
Si ya necesitamos pasar en nuestro formato de cadena y una variedad de tipos (al menos), entonces estamos básicamente en la firma de String.Format
, entonces ¿por qué no solo usar eso y manejar la excepción? Sería bueno si algo como String.TryFormat
existiera, pero que yo sepa, no es así.
Además, la validación previa a través de algunas API, y luego la validación en String.Format
en sí no es ideal.
creo que la solución más limpia podría ser la definición de un envoltorio:
public static bool TryFormat(string format, out string result, params Object[] args)
{
try
{
result = String.Format(format, args);
return true;
}
catch(FormatException)
{
return false;
}
}
Qué idioma ¿Estás trabajando en? DO#? –
Debe etiquetar esta pregunta con el lenguaje de programación en el que está buscando una respuesta. – chucksmash
sí C# string.format – codeSetter