Formato String compilar tiempo comprobando
-
19-09-2019 - |
Pregunta
¿Hay alguna manera de comprobar la cadena de formato en tiempo de compilación?
Ejemplo:
Console.WriteLine("{0} is a really {1} site", "stackoverflow.com", "cool");//this will run
// esto dará una excepción como se suministra sólo un argumento
Console.WriteLine("{0} is a really {1} site", "stackoverflow.com");
Exception:"Index (zero based) must be greater than or equal to zero and less than the size of the argument list."
y si la cadena de formato no está en el formato correcto (es decir, falta la "}" después del 1 aquí)
Console.WriteLine("{0} is a really {1 site", "stackoverflow.com","cool");
Exception: Input string was not in a correct format.
Solución
No, no se puede añadir la verificación en tiempo de compilación aquí. Se trata de uno de los lados de bajada a cadenas de recursos y las cadenas de formato. Usted puede hacer algunas cosas para mitigar el problema.
- a fondo la unidad a prueba sus interfaces públicas para estar seguro de que sus cuerdas se formatean correctamente.
- Utilice herramientas como ReSharper que pueden realizar el análisis estático y hacerle saber acerca de estos problemas antes de ejecutar la aplicación.
- Las cosas son mejores grupos de tres.
Otros consejos
No, no hay manera de hacer esto. Prueba de la unidad resuelve este problema.
Mientras que el registro no es realmente en tiempo de compilación, ReSharper puede advertirle en Visual Studio cuando el número de argumentos es incorrecto o la cadena de formato es en un formato incorrecto.