Що означає {0}, коли його знайдено в рядку в C #?


85

У такому словнику:

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

Вихід:

Для Key = "rtf" значення = wordpad.exe

Що {0}означає?

Відповіді:


180

Ви друкуєте відформатований рядок. {0} означає вставити перший параметр після рядка форматування; в цьому випадку значення, пов'язане з ключем "rtf".

Для String.Format, який подібний, якщо у вас було щось подібне

//            Format string                    {0}           {1}
String.Format("This {0}.  The value is {1}.",  "is a test",  42 ) 

ви б створили рядок "Це тест . Значення 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 , де йдеться про складене форматування.


25

Це заповнювач у рядку.

Наприклад,

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

І ви все одно отримаєте той самий результат.


11

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

Існує ряд вбудованих специфікаторів формату, і крім того, ви можете створити власні. Для гідного підручника / списку див. Форматування рядків у C # . Крім того , є FAQ тут .


6

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

Зверніть увагу, що виділення виділеного місця (наприклад, подвійне клацання або перетягування) та натискання F1 лише пошук без контексту (який має тенденцію засмоктувати щось корисне), тому переконайтеся, що ви просто розташували курсор де завгодно слово, не виділяючи його.

Це також корисно для документації щодо занять та інших типів.


5

Це заповнювач для першого параметра, який у вашому випадку має значення "wordpad.exe".

Якби у вас був додатковий параметр, ви б використовували {1}тощо.


4

Це заповнювач для параметра, подібно до того, як %sспецифікатор формату діє всередині printf.

Ви можете почати додавати туди зайві речі, щоб також визначити формат, хоча це має більший сенс із числовою змінною ( приклади тут ).


0

Це те, що ми назвали складеним форматуванням .NET Framework, щоб перетворити значення об'єкта на його текстове представлення та вбудувати це представлення у рядок. Отриманий рядок записується у вихідний потік.

Перевантажений метод Console.WriteLine (String, Object) Записує текстове подання зазначеного об'єкта, за яким слідує поточний термінатор рядків, до стандартного потоку виводу, використовуючи інформацію про вказаний формат.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.