#c_sharp #консоль
Что означают символы: $, {}, {0} - в подобных записях вывода строк? Console.WriteLine($"Имя: {name} Возраст: {age}"); Console.WriteLine("Выводится значение {0} ", count);
Ответы
Ответ 1
Со знаком доллара - это интерполяция строк, которая появилась в C#6. $ указывает на то, что это самая строка будет той самой, куда можно подставить переменные напрямую, не заморачиваясь какой-нибудь конкатенацией или строкой составного формата (об этом ниже). То есть вместо записи: Console.WriteLine("Имя: " + name + ", Возраст: " + age); Можно записать Console.WriteLine($"Имя: {name} Возраст: {age}"); где name и age - переменные со значениями, которые объявлены где-то выше в коде. Фигурные скобки внутри нужны, чтобы отделить простые строки от действительно имен переменных. Иначе компилятор не смог бы понять где name является просто частью строки, а где подставляемая переменная. Там где написано {0}, {1} и т.д. - это cтрока составного формата, где вместо {0}, {1} и т.д. подставляются значения переменных, которые перечислены через запятую после это строки. Пример из доков: string name = "Fred"; String.Format("Name = {0}, dt = {1}", name, DateTime.Now); Здесь Name = и , hours = — фиксированный текст. Элементы форматирования — это "{0}" c индексом 0, который соответствует объекту name, и "{1}" с индексом 1, который соответствует объекту DateTime.Now. Номер соответствует номеру переменной в перечислении name, DateTime.Now. То есть если расположить их так: DateTime.Now, name, то строка выше выведется так: Name = 01.01.2017 10:10:00 , dt = Fred вместо Name = Fred , dt = 01.01.2017 10:10:00 Кроме того сами цифры в строке можно размещать в разные позиции, главное, чтобы они соответствовали номеру переменной в перечислении. Так, если написать String.Format("{1}{0}Name =, dt = ", name, DateTime.Now); то выведется: 01.01.2017 10:10:00FredName =, dt = Возможностей интерполирования строк и строки составного формата конечно чуть больше, чем просто подставить переменную (например задать ширину поля или задать тут же формат даты и времени). Поэтому чуть более подробно можно почитать в документации по ссылкам вышеОтвет 2
Это интерполированные строки, эти записи обозначают места, где должны подставляться какие-то значения. Знак доллара перед строкой указывает, что будет осуществляться интерполяция строк. {} - плейсхолдеры, которые указывают места, в которые будет интерполироваться значение. Число внутри скобок обозначает порядковый номер аргумента. Вместо числа может быть также имя переменной. Console.WriteLine("Имя: {0} Возраст: {1}", Name, Age); // 0 - Name, 1 - Age Также можно об интерполяции строк в c# почитать здесь
Комментариев нет:
Отправить комментарий