26

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);
0

3 Answers 3

50

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.

Sign up to request clarification or add additional context in comments.

Comments

6

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); 

Comments

2

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.