Что означает {0}, когда он найден в строке в С#?
В словаре вроде этого:
Dictionary<string, string> openWith = new Dictionary<string, string>();
openWith.Add("txt", "notepad.exe");
openWith.Add("bmp", "paint.exe");
openWith.Add("dib", "paint.exe");
openWith.Add("rtf", "wordpad.exe");
Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]);
Вывод:
Для ключа = "rtf" value = wordpad.exe
Что означает {0}
?
Ответы
Ответ 1
Вы печатаете форматированную строку. {0} означает вставить первый параметр, следующий за строкой формата; в этом случае значение, связанное с ключом "rtf".
Для String.Format, который похож, если у вас что-то вроде
// Format string {0} {1}
String.Format("This {0}. The value is {1}.", "is a test", 42 )
вы создадите строку "This - это тест. Значение 42".
Вы также можете использовать выражения и печатать значения несколько раз:
// Format string {0} {1} {2}
String.Format("Fib: {0}, {0}, {1}, {2}", 1, 1+1, 1+2)
уступая "Fib: 1, 1, 2, 3"
Подробнее в http://msdn.microsoft.com/en-us/library/txafckwd.aspx, в котором говорится о составном форматировании.
Ответ 2
Это заполнитель в строке.
Например,
string b = "world.";
Console.WriteLine("Hello {0}", b);
будет производить этот вывод:
Hello world.
Кроме того, вы можете иметь столько заполнителей, сколько пожелаете. Это также работает на String.Format
:
string b = "world.";
string a = String.Format("Hello {0}", b);
Console.WriteLine(a);
И вы все равно получите тот же самый результат.
Ответ 3
Помимо значения, которое вы хотите распечатать, {0} {1}
и т.д., вы можете указать формат. Например, {0,4}
будет значением, которое дополняется четырьмя пробелами.
Существует множество встроенных спецификаторов формата, и, кроме того, вы можете создавать свои собственные. Для достойного учебника/списка см. Форматирование строк в С#. Кроме того, здесь есть FAQ .
Ответ 4
Для дальнейшего использования в Visual Studio вы можете попробовать поместить курсор в имя метода (например, WriteLine) и нажать F1, чтобы вытащить помощь в этом контексте. Затем выкапывание должно найти вас String.Format()
в этом случае с большим количеством полезной информации.
Обратите внимание, что выделение выделения (например, двойное нажатие или выполнение перетаскивания) и нажатие F1 выполняет только поиск неконтекстных строк (который, как правило, сосут в поиске чего-либо полезного), убедитесь, что вы просто поместите курсор в любом месте слова, не выделяя его.
Это также полезно для документации по классам и другим типам.
Ответ 5
Это заполнитель для первого параметра, который в вашем случае оценивается как "wordpad.exe".
Если у вас есть дополнительный параметр, вы должны использовать {1}
и т.д.
Ответ 6
Это заполнитель для параметра, очень похожий на спецификатор формата %s
, действует в пределах printf
.
Вы можете начать добавлять дополнительные вещи туда, чтобы определить формат, хотя это имеет большее значение с числовой переменной (примеры здесь).