String parameter placeholder

c#, parameters, string

Solution

You escaped the curly braces so they have no special meaning. From the documentation:

To specify a single literal brace character in format, specify two leading or trailing brace characters; that is, `"{{"` or `"}}"`.

You can simplify your program and still demonstrate the problem:

Console.WriteLine("{{0}}", 1);

Output:

{0}

See it working online: ideone

To get the desired output you need to use `{{` followed by `{0}` and then finally `}}`:

string str = "({{{0}}})";

Problem

``` string str = "({{0}})"; int i = 0; string str2 = string.Format(str, i++); string str3 = string.Format(str, i++); ``` why is str3 ({0}) instead of ({1})?

Original source