问题
I have just taken over some code and I see this used a lot. It seems to take the integer and create a string looking like "01", "02" etc.
What I am not sure of is the convention used here. Why is the format {0:00}
and not {00}
?
string.Format("{0:00}", int.Parse(testVal) + 1);
回答1:
The first 0
is the placeholder, means the first parameter.
00
is an actual format.
For example it could be like this:
var result = string.Format("{0:00} - {1:00}", 5, 6);
result
will be 05 - 06
. So the first 0 is means take the first parameter 5, while 1 means to take parameter 6.
The format is {index[,length][:formatString]}
. Take a look at String.Format Method.
回答2:
The first 0
in the following line is for the index of your argument
string.Format("{0:00}", int.Parse(testVal) + 1);
(int.Parse(testVal) + 1).ToString ("00")
will yield the same thing.
string.Format
supports multiple substitutions like this:
string.Format("{0:00} + 1 = {1:00}", int.Parse(testVal), int.Parse(testVal) + 1);
回答3:
The leading 0
in the format string {0:00}
indicates the index of this formatter specification. The MSDN documentation for String.Format has this to say about the index...
index: The zero-based position in the parameter list of the object to be formatted.
来源:https://stackoverflow.com/questions/6352587/formatting-a-string-with-string-format000