Главная » Просмотр файлов » 1629295407-c61bfe4caba98380ea3e7cdae6295416

1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200), страница 13

Файл №846200 1629295407-c61bfe4caba98380ea3e7cdae6295416 (Шилдт Герберт - Полный справочник по C#) 13 страница1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200) страница 132021-08-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 13)

Элементыширина и формат указывать необязательно. Следовательно, спецификатор формата {0}означает arg0, {1} означает arg1 и т.д.Теперь рассмотрим простой пример. При выполнении инструкции62Часть I. Язык C#Console.WriteLine("В феврале {0} или {1} дней.", 28, 29);будет сгенерирован следующий результат:В феврале 28 или 29 дней.Как видите, вместо спецификатора {0} было подставлено значение 28, а вместоспецификатора {1} — значение 29. Таким образом, внутри строки форматированияспецификаторы формата идентифицируют местоположение последовательно заданныхаргументов (в данном случае это числа 28 и 29).

Обратите также внимание на то, чтосоставные части выводимого результата разделены не знаками “+”, а запятыми.А теперь “сыграем” вариацию на тему предыдущей инструкции, указав вспецификаторах формата минимальную ширину поля.Console.WriteLine("В феврале {0,10} или {1,5} дней.", 28, 29);Вот как будет выглядеть результат ее выполнения:В феврале 28 или 29 дней.Нетрудно убедиться, что при выводе значений аргументов были добавлены пробелы,заполняющие неиспользуемые части полей. Обратите внимание на то, что второй элементспецификатора формата означает минимальную ширину поля.

Другими словами, принеобходимости это значение может быть превышено.Безусловно, аргументы, связанные с командой форматирования, необязательнодолжны быть константами. Например, в следующей программе отображается таблицарезультатов возведения ряда чисел в квадрат и куб.// Использование команд форматирования.using System;class DisplayOptions {public static void Main() {int i;Console.WriteLine("Число\tКвадрат\tКуб");}}for(i = 1; i < 10; i++)Console.WriteLine("{0}\t{1}\t{2}", i, i*i, i*i*i);Вот как выглядит результат выполнения этой программы:Число Квадрат Куб111248392741664525125636216749343864512981729В предыдущих примерах программ выводимые значения не форматировались.Конечно же, спецификаторы формата позволяют управлять характером их отображения.Обычно форматируются десятичные значения и значения с плавающей точкой.

Самыйпростой способ задать формат — описать шаблон, которым будет пользоваться методWriteLine(). Для этого рассмотрим пример форматирования с помощью символов “#”,отмечающих позиции цифр. При этом можно указать расположение десятичнойГлава 3. Типы данных, литералы и переменные63точки и запятых, которые используются в качестве разделителей групп разрядов. Выше мыприводили пример отображения частного от деления числа 10 на 3. Теперь рассмотрим ещеодин вариант вывода результата выполнения этой арифметической операции.Console.WriteLine("При делении 10/3 получаем: {0:#.##}", 10.0/3.0);Теперь результат выглядит по-другому:При делении 10/3 получаем: 3.33В этом примере шаблон имеет вид #.##, что для метода WriteLine() служитуказанием отобразить лишь два десятичных разряда.

Но важно понимать, что принеобходимости слева от десятичной точки будет отображено столько цифр, сколькопотребуется, чтобы не исказить значение.А вот еще пример. При выполнении инструкцииConsole.WriteLine("{0:###,###.##}", 123456.56);будет сгенерирован следующий результат:123,456.56Если нужно отобразить значение в формате представления долларов и центов,используйте спецификатор формата С.

Вот пример:decimal balance;balance = 12323.09m;Console.WriteLine("Текущий баланс равен {0:C}, balance);Результат выполнения этой последовательности инструкций выглядит так:Текущий баланс равен $12,323.09Формат с можно использовать для улучшения представления результата выполненияпрограммы вычисления цены со скидкой, которая рассматривалась выше./*Использование спецификатора формата C для выводазначений в виде долларов и центов.*/using System;class UseDecimal {public static void Main() {decimal price;decimal discount;decimal discounted_price;// Вычисляем цену со скидкой.price = 19.95m;discount = 0.15m; // Ставка дисконта равна 15%.}}discounted_price = price - (price * discount);Console.WriteLine("Цена со скидкой: {0:C}",discounted_price);Посмотрите, как теперь выглядит результат выполнения программы, и сравните его спредыдущим:Цена со скидкой: 16,96р.64Часть I.

Язык C#ЛитералыВ C# литералами называются фиксированные значения, представленные в понятнойформе. Например, число 100 — это литерал. Литералы также называют константами. Побольшей части применение литералов происходит на интуитивном уровне, и поэтому мыбез особых пояснений использовали их в той или иной форме во всех предыдущихпримерах программ. Теперь настало время объяснить их формально.C#-литералы могут иметь любой тип значений.

Способ их представления зависит отих типа. Как упоминалось выше, символьные константы заключаются между двумяодинарными кавычками. Например, как ‘а’, так и ‘%’ — символьные константы.Целочисленные литералы задаются как числа без дробной части.

Например, 10 и 100 — это целочисленные константы. Константы с плавающей точкой должны обязательноиметь десятичную точку, а за ней — дробную часть числа. Примером константы сплавающей точкой может служить число 11.123. Для вещественных чисел C# позволяеттакже использовать экспоненциальное представление (в виде мантиссы и порядка).Поскольку C# — строго типизированный язык, литералы в нем также имеют тип.Отсюда сразу возникает вопрос: как определить тип литерала? Например, какой тип имеюттакие литералы, как 12, 123987 или 0.23? К счастью, C# определяет несколько простыхправил, позволяющих ответить на эти вопросы.Во-первых, что касается целочисленных литералов, то им присваивается наименьшийцелочисленный тип, который сможет его хранить, начиная с типа int. Таким образом,целочисленный литерал, в зависимости от конкретного значения, может иметь тип int,uint, long или ulong.

Во-вторых, все литералы с плавающей точкой имеют тип double.Если тип, задаваемый по умолчанию в языке C#, не соответствует вашим намерениямв отношении типа конкретного литерала, вы можете явно определить его с помощьюнужного суффикса. Чтобы задать литерал типа long, присоедините к его концу букву lили L. Например, если значение 12 автоматически приобретает тип int, но значение 12Lимеет тип long.

Чтобы определить целочисленное значение без знака, используйтесуффикс u или U. Так, если значение 100 имеет тип int, но значение 100U — тип uint.Для задания длинного целого без знака используйте суффикс ul или UL (например,значение 987654UL будет иметь тип ulong).Чтобы задать литерал типа float, используйте суффикс f или F (например,10.19F).Чтобы задать литерал типа decimal, используйте суффикс m или М (например, 9.95М).Несмотря на то что целочисленные литералы создают int-, uint-, long- илиulong-значения по умолчанию, их тем не менее можно присваивать переменным типаbyte, sbyte, short или ushort, если, конечно, они могут быть представленысоответствующим типом.Шестнадцатеричные литералыВероятно, вам известно, что в программировании вместо десятичной иногда удобнееиспользоватьсистемусчисленияпооснованию16,котораяназываетсяшестнадцатеричной. В ней используются цифры от 0 до 9 и буквы от А до F, которыеслужат для обозначения шестнадцатеричных “цифр” 10, 11, 12, 13, 14 и 15.

Например,число 10 в шестнадцатеричной системе равно десятичному числу 16. Язык C#, как и многиедругие языки программирования, позволяет задавать целочисленные константы вшестнадцатеричном формате. Шестнадцатеричный литерал должен начинаться с парысимволов 0x (нуля и буквы “x”). Приведем несколько примеров.count = 0xFF; // 255 в десятичной системеГлава 3. Типы данных, литералы и переменные65incr = 0x1a; // 26 в десятичной системеУправляющие последовательности символовСреди множества символьных констант, образующихся в результате заключениясимволов в одинарные кавычки, помимо печатных символов есть такие (например, символвозврата каретки), которые создают проблему при использовании текстовых редакторов.Некоторые символы, например одинарная или двойная кавычка, имеют в C# специальноезначение, поэтому их нельзя использовать непосредственно.

По этим причинам в C#предусмотрено несколько управляющих последовательностей символов (ESCпоследовательностей), перечисленных в табл. 3.3. Эти последовательности используютсявместо символов, которых они представляют.Например, следующая инструкция присваивает переменной ch символ табуляции:ch = ‘\t’;А эта инструкция присваивает переменной ch символ одинарной кавычки:ch = ‘\’’;Таблица 3.3.

Управляющие последовательности символовESC-последовательностьОписание\а\b\f\n\r\t\v\0\’\"\\Звуковой сигнал (звонок)Возврат на одну позициюПодача страницы (для перехода к началу следующей страницы)Новая строкаВозврат кареткиГоризонтальная табуляцияВертикальная табуляцияНуль-символОдинарная кавычка (апостроф)Двойная кавычкаОбратная косая чертаСтроковые литералыЯзык C# поддерживает еще один тип литерала: строковый. Строка — это наборсимволов, заключенных в двойные кавычки.

Например, фрагмент кода"Это тест"представляет собой строку. В предыдущих фрагментах программ (а именно в инструкцияхвызова метода WriteLine()) вы видели другие примеры строк.Помимо обычных символов, строковый литерал может содержать одну или несколькоуправляющих последовательностей. Рассмотрим, например, следующую программу. В нейиспользуются такие ESC-последовательности, как \n, \t и \".// Использование ESC-последовательностей в строках.using System;66Часть I.

Язык C#class StrDemo {public static void Main() {Console.WriteLine("Первая строка\nВторая строка\nТретья строка");Console.WriteLine("Один\tДва\tТри");Console.WriteLine("Четыре\tПять\tШесть");// Вставляем кавычки.Console.WriteLine("\"Зачем?\", спросил он.");}}Вот что получаем в результате:Первая строкаВторая строкаТретья строкаОдинДваТриЧетыреПятьШесть"Зачем?", спросил он.Обратите внимание на то, как управляющая последовательность \n используется дляперехода на новую строку, благодаря чему не нужно многократно вызывать методWriteLine() для организации выводимых данных на нескольких строках. В те позиции,где необходимо сделать переход на новую строку, достаточно вставить ESCпоследовательность \n.

Характеристики

Тип файла
PDF-файл
Размер
5,05 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее