问题
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