Программирование на C# для начинающих. Основные сведения
Год издания: 2023
Автор: Васильев Алексей
Издательство: Эксмо
ISBN: 978-5-04-092519-3
Серия: Российский компьютерный бестселлер
Язык: Русский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Количество страниц: 586
Описание: Первая часть самоучителя по C#, написанного известным российским автором учебников по программированию Алексеем Васильевым. В этой книге автор приглашает читателей ознакомиться с основами языка C#. Прочитав ее, вы узнаете историю языка, его структуру, ознакомитесь с типами данных и переменными, операторами, циклами и множеством другой полезной информации, необходимой для работы с этим языком. Книга содержит множество примеров и подробный разбор каждого из них, а также задания для самостоятельной работы. Прочитав этот самоучитель, вы будете обладать полным спектром сведений по языку С#, необходимых для того , чтобы приступить к самостоятельному программированию на нем.
Вторая часть самоучителя по C#
здесь
Оглавление
Введение. Язык С# и технология .Net Framework . . . . . . . . . . . 7
История создания языка С# . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Особенности языка С# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Программное обеспечение . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Собственно о книге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Обратная связь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Об авторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Глава 1. Знакомство с языком С# . . . . . . . . . . . . . . . . . . . . . 21
Структура программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Первая программа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Использование среды разработки . . . . . . . . . . . . . . . . . . . . . 27
Пространство имен . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Программа с диалоговым окном . . . . . . . . . . . . . . . . . . . . . . . 33
Настройка вида диалогового окна . . . . . . . . . . . . . . . . . . . . . 42
Окно с полем ввода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Консольный ввод . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Считывание чисел . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Форматированный вывод . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 60
Глава 2. Базовые типы и операторы . . . . . . . . . . . . . . . . . . . 62
Переменные и базовые типы данных . . . . . . . . . . . . . . . . . . . 63
Литералы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Управляющие символы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Преобразование типов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Объявление переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Арифметические операторы . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Операторы сравнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Логические операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Побитовые операторы и двоичные коды . . . . . . . . . . . . . . . . . 90
Оператор присваивания . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Сокращенные формы операции присваивания . . . . . . . . . . . . 102
Тернарный оператор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Приоритет операторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Примеры программ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 113
Глава 3. Управляющие инструкции . . . . . . . . . . . . . . . . . . . . 115
Условный оператор if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Вложенные условные операторы . . . . . . . . . . . . . . . . . . . . . . 123
Оператор выбора switch . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Оператор цикла while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Оператор цикла do-while . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Оператор цикла for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Инструкция безусловного перехода goto . . . . . . . . . . . . . . . . . 156
Перехват исключений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 168
Глава 4. Массивы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Одномерные массивы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Инициализация массива . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Операции с массивами . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Цикл по массиву . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Двумерные массивы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Многомерные массивы . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Массив со строками разной длины . . . . . . . . . . . . . . . . . . . . 213
Массив объектных ссылок . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Параметры командной строки . . . . . . . . . . . . . . . . . . . . . . . 223
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 227
Глава 5. Статические методы . . . . . . . . . . . . . . . . . . . . . . . . . 230
Знакомство со статическими методами . . . . . . . . . . . . . . . . . . 231
Перегрузка статических методов . . . . . . . . . . . . . . . . . . . . . . 238
Массив как аргумент метода . . . . . . . . . . . . . . . . . . . . . . . . 242
Массив как результат метода . . . . . . . . . . . . . . . . . . . . . . . . 247
Механизмы передачи аргументов методу . . . . . . . . . . . . . . . . 254
Рекурсия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Методы с произвольным количеством аргументов . . . . . . . . . . 271
Главный метод программы . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 280
Глава 6. Знакомство с классами и объектами . . . . . . . . . . . . . 282
Базовые принципы ООП . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Классы и объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Описание класса и создание объекта . . . . . . . . . . . . . . . . . . . 289
Использование объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Закрытые члены класса и перегрузка методов . . . . . . . . . . . . 299
Конструктор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Деструктор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Статические члены класса . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Ключевое слово this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 330
Глава 7. Работа с текстом . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Класс String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Создание текстового объекта . . . . . . . . . . . . . . . . . . . . . . . . 336
Операции с текстовыми объектами . . . . . . . . . . . . . . . . . . . . 344
Методы для работы с текстом . . . . . . . . . . . . . . . . . . . . . . . . 356
Метод ToString() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 379
Глава 8. Перегрузка операторов . . . . . . . . . . . . . . . . . . . . . . . 381
Операторные методы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Перегрузка арифметических
и побитовых операторов . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Перегрузка операторов сравнения . . . . . . . . . . . . . . . . . . . . . 404
Перегрузка операторов true и false . . . . . . . . . . . . . . . . . . 423
Перегрузка логических операторов . . . . . . . . . . . . . . . . . . . . 427
Перегрузка операторов приведения типов . . . . . . . . . . . . . . . . 432
Команды присваивания
и перегрузка операторов . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 445
Глава 9. Свойства и индексаторы . . . . . . . . . . . . . . . . . . . . . . 448
Знакомство со свойствами . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Использование свойств . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Знакомство с индексаторами . . . . . . . . . . . . . . . . . . . . . . . . 475
Использование индексаторов . . . . . . . . . . . . . . . . . . . . . . . . 481
Двумерные индексаторы . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Многомерные индексаторы . . . . . . . . . . . . . . . . . . . . . . . . . 506
Перегрузка индексаторов . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 520
Глава 10. Наследование . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Знакомство с наследованием . . . . . . . . . . . . . . . . . . . . . . . . 524
Наследование и уровни доступа . . . . . . . . . . . . . . . . . . . . . . 529
Наследование и конструкторы . . . . . . . . . . . . . . . . . . . . . . . 535
Объектные переменные базовых классов . . . . . . . . . . . . . . . . 543
Замещение членов при наследовании . . . . . . . . . . . . . . . . . . . 549
Переопределение виртуальных методов . . . . . . . . . . . . . . . . . 553
Переопределение и замещение методов . . . . . . . . . . . . . . . . . 558
Переопределение и перегрузка методов . . . . . . . . . . . . . . . . . 562
Оглавление
Наследование свойств и индексаторов . . . . . . . . . . . . . . . . . . 565
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 576
Заключение. Что будет дальше . . . . . . . . . . . . . . . . . . . . . . . . . 580
Предметный указатель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581