Причина их использования {0}
и т.д. для индекса или заполнитель, это полезно, поскольку без этого кода, вы бы в конечном итоге со следующим:
Console.WriteLine(userValue + " " + message);
Так, в описанном выше подходе вы использовали конкатенацию. Это объединит ваши два значения вместе, в случае String
считается неизменным, что означает каждый раз, когда вы объединяете свою препятствующую память. Так что если вы делаете:
string message = String.Empty;
message += userValue;
message += note;
+=
, что это событие, которое добавляет наше текущее значение плюс новое значение. Следует отметить, однако, что с каждым message =
он воссоздает значение в памяти, поэтому большие данные могут стать проблемой.
Встроенная функция: Console.WriteLine
наилучшим образом коррелирует с String.Format
. Что в сущности позволит нам сделать следующее:
var message = String.Format("{0} {1}", userValue, note);
Так что, когда вы используете указанный держатель, он строит наш выход как конкатенации, но в более производительный и простой подход для чтения. Так как вы должны начинать с {0}
, вам невероятно легко узнать, какое значение вы хотите изменить.
Важно: Чтобы пример легче понять, но index
или placeholder
сравнение, для понимания, но они параметры, которые будут заселять указанные позиции на основе порядка осуществления.
Пример с кодом:
var userValue = 2;
var message = String.Empty;
if(userValue == 1)
message = "boat";
else { message = "car"; }
Для простоты я удалил свой тройной, потому что вы жёстко значение пользователя вашего заявление никогда не будет тестировать так, как вы должны это установить на 2
. Таким образом, у вас есть два значения, так как вы можете обозначить if userValue == 1
так, иначе назначьте сообщение своей другой переменной.
Когда вы сделаете эту часть:
Console.WriteLine("{0} - {1}", message, userValue);
Ваше преобразование обоих параметров в string
, но он не будет делать каких-либо вычитанием, потому что string
не делает математические функции, так что вы бы в конечном итоге с выход:
car - 2;
Причина в том, что, как я обозначил ранее, оба параметра действуют как заполнители. Таким образом, значение этих двух параметров будет вставлено в ваш String
.
Надеюсь, это изложит, что он делает лучше для вас.
'{1}' и '{0} 'являются тянущаяся параметры, которые следуют за строкой. '{0}' - это первый параметр, а '{1}' второй, поскольку он основан на нуле. Также нет, он не вычитает их. Знак '-' является только оператором, если используется вне строки. –
Lol .. Да, это правильно .. – Minh
тезисы - это просто * дыры * в вашей строке форматирования 'WriteLine' используется для вставки значений, которые нужно передать после:' '' - это просто символ '' -'' внутри строка – Carsten