2011-06-15 21 views
21

Acabo de tomar un código y veo que esto se usa mucho. Parece tomar el número entero y crear una cadena que se parece a "01", " 02" , etc.Formateo de una cadena con string.Format ("{0:00}"

lo que no estoy seguro es de la convención usada aquí. ¿Por qué es el formato {0:00} y no {00}?

string.Format("{0:00}", int.Parse(testVal) + 1); 

Respuesta

41

la primera 0 es el marcador de posición, significa que el primer parámetro. 00 es un formato real.

Por ejemplo, podría ser así:

var result = string.Format("{0:00} - {1:00}", 5, 6); 

result habrá 05 - 06. Así que la primera es 0 medios toman el primer parámetro 5, mientras que 1 significa tomar parámetro 6.

El formato es {index[,length][:formatString]}. Eche un vistazo al String.Format Method.

+0

Muchas gracias por su ayuda –

+2

@ David H: Si esto respondió a su pregunta, marca segura para marcar es como la respuesta aceptada. –

+0

Acaba de marcar como aceptado :-) –

3

El líder 0 en la cadena de formato {0:00} indica el índice de esta especificación formateador. La documentación de MSDN para String.Format tiene esto que decir sobre el índice ...

índice: la posición de base cero en la lista de parámetros del objeto a ser formateado.

4

La primera 0 en la siguiente línea es para el índice de su argumento

string.Format("{0:00}", int.Parse(testVal) + 1); 

(int.Parse(testVal) + 1).ToString ("00") producirá lo mismo.

string.Format soporta múltiples sustituciones de este tipo:

string.Format("{0:00} + 1 = {1:00}", int.Parse(testVal), int.Parse(testVal) + 1); 
Cuestiones relacionadas