2013-06-01 7 views
4

Я смотрю вокруг, но с большим трудом нахожу ответ на этот вопрос, так как вещь, которую я ищу, настолько неспецифична.Что делают цифры в фигурных скобках, например. «{0}» означает?

Я видел много кода, который использует в нем {0}, и я до сих пор не могу понять, что он делает. Вот пример:

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

ответ

4
Console.WriteLine("Substring: {0}", substring) 

То же самое,

Console.WriteLine("Substring: " & substring) 

При использовании Console.WriteLine, {n} вставит n-й аргумент в строку, а затем записать его.

Более сложный пример можно посмотреть здесь:

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

Он будет печатать Stack Overflow.

+0

О, это имеет смысл, спасибо! Хотя я должен спросить, почему вы отредактировали мой вопрос о том, чтобы поздороваться с StackOverflow, потому что я немного озадачен, почему это проблема? : P – Lou

+0

@LeoKing Добро пожаловать :) Здесь, в Stack Overflow, мы не хотим приветствия и «спасибо» в наших вопросах, они просто отвлекают от вопроса. (подробнее [здесь] (http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts)) – Doorknob

+0

Да, это интересно. Похоже, довольно противоречие по этой ссылке. Я лично не вижу в этом ничего плохого, потому что мне не нравится слишком требовательный и мелочный на любом сайте, но я не буду kerfuffle, если это так, как это хочет сообщество! – Lou

1

Это заполнитель. Начиная со второго параметра (подстрока в вашем случае), они включаются в заданную строку в данном порядке. Таким образом, вы избегаете длинных конкатенаций строк с помощью оператора + и можете упростить локализацию языка, поскольку вы можете вытащить конкурирующую строку, включая заполнители, в какой-либо файл внешних ресурсов и т. Д.

+0

OH Я вижу, это действительно здорово! Спасибо! – Lou

2

Console.WriteLine() и String.Format() use этот синтаксис. Это позволяет вводить переменную в строку, например:

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

Эта строка будет "Hello Джеймсу"

Использование Console.WriteLine:

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

Это будет писать " Hello james "

+0

Спасибо, это имеет большой смысл :). – Lou

0

Он называется составным форматированием и поддерживается многими методами, Console.WriteLine является одним. Помимо индексированных заполнителей имеются и другие доступные функции. Вот ссылка на документацию, в которой показаны некоторые другие особенности композитного форматирования.

Composite Formatting

Смежные вопросы