Что означает {0} при нахождении в строке в C#?


в таком словаре:

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

выход:

For Key = " rtf " value = wordpad.exe

Что значит {0} в смысле?

7 69

7 ответов:

вы печатаете форматированную строку. {0} означает вставить первый параметр после строки формата; в этом случае значение, связанное с ключом "rtf".

Для Строки.Формат, который похож, если у вас было что-то вроде

//            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, который говорит о составном форматировании.

это заполнитель в строке.

например,

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

и вы все равно получите тот же самый выход.

в дополнение к значению, которое вы хотите напечатать,{0} {1} и т. д. можно указать формат. Например, {0,4} будет значение, которое дополняется до четырех пространств.

есть ряд встроенных спецификаторы формата, и кроме того, вы можете сделать свой собственный. Для достойного учебника / списка см. форматирование строк в C#. Кроме того, есть FAQ здесь.

для дальнейшего использования в Visual Studio вы можете попробовать поместить курсор в имя метода (например, WriteLine) и нажать F1 чтобы вытащить помощь в этом контексте. Копание вокруг должно затем найти вас String.Format() в этом случае, с большим количеством полезной информации.

обратите внимание, что выделение выделения (например, двойной щелчок или перетаскивание) и нажатие F1 только поиск строки без контекста (который имеет тенденцию сосать при поиске чего-либо полезно), поэтому убедитесь, что вы просто поместите курсор в любом месте внутри слова, не подчеркивая его.

Это также полезно для документации по классам и другим типам.

это заполнитель для первого параметра, который в вашем случае оценивается как "wordpad.исполняемый."

Если бы у вас был дополнительный параметр, вы бы использовали {1} и т. д.

это заполнитель для параметра, похожего на %s спецификатор формата действует в пределах printf.

Вы можете начать добавлять дополнительные вещи в там, чтобы определить формат, хотя это имеет больше смысла с числовой переменной (вот примеры:).

Это то, что мы называем Составное Форматирование платформы .NET Framework для преобразования значения объекта в его текстовое представление и внедрения этого представления в строку. Полученная строка записывается в выходной поток.

перегруженный