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.
¿Fue útil?

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.

  1. a fondo la unidad a prueba sus interfaces públicas para estar seguro de que sus cuerdas se formatean correctamente.
  2. 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.
  3. 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top