简体   繁体   中英

What do numbers in braces e.g. “{0}” mean?

I've been looking around but having great difficulty finding the answer to this question as the thing I'm looking for is so unspecific.

I've seen a lot of code which uses {0} in it, and I still can't work out what it's doing. Here's an example:

Dim literal As String = "CatDogFence"
Dim substring As String = literal.Substring(6)
Console.WriteLine("Substring: {0}", substring)
Console.WriteLine("Substring: {0}", substring)

Is the same as

Console.WriteLine("Substring: " & substring)

When using Console.WriteLine , {n} will insert the n th argument into the string, then write it.

A more complex example can be seen here:

Console.WriteLine("{0} {1}{2}", "Stack", "Over", "flow")

It will print Stack Overflow .

Console.WriteLine() and String.Format() use that syntax. It allows you to inject a variable into a string, for example:

dim name = "james"
String.Format("Hello {0}", name)

That string will be "Hello james"

Using Console.Writeline:

Console.WriteLine("Hello {0}",name)

That will write "Hello james"

It's a placeholder. Beginning at the second parameter (substring in your case), they are included in the given string in the given order. This way you avoid long string concatenations using + operator and can do easier language localization, because you can pull the compete string including the placeholders to some external resource file etc.

It is called composite formatting and is supported by many methods, Console.WriteLine being one. Besides indexed placeholders there are other features available. Here is a link to the documentation that shows some of the other features of composite formatting.

Composite Formatting

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM