- •Предисловие
- •Объектная ориентация программ на C#
- •1.1. Типы, классы, объекты
- •1.2. Программа на C#
- •1.3. Пространство имен
- •1.4. Создание консольного приложения
- •Типы в языке C#
- •2.1. Типы ссылок и типы значений
- •2.2. Классификация типов C#
- •2.3. Простые типы. Константы-литералы
- •2.4. Объявления переменных и констант базовых типов
- •Операции и целочисленные выражения
- •3.1. Операции языка C#
- •3.2. Операции присваивания и оператор присваивания
- •3.3. Операции инкремента (++) и декремента (--)
- •3.4. Выражения с арифметическими операциями
- •3.5. Поразрядные операции
- •Выражения с операндами базовых типов
- •4.1. Автоматическое и явное приведение арифметических типов
- •4.2. Особые ситуации в арифметических выражениях
- •4.3. Логический тип и логические выражения
- •4.4. Выражения с символьными операндами
- •5.2. Простые (базовые) типы C# как классы
- •Операторы
- •6.1. Общие сведения об операторах
- •6.2. Метки и оператор безусловного перехода
- •6.4. Операторы цикла
- •6.5. Операторы передачи управления
- •6.6. Переключатель
- •Массивы
- •7.1. Одномерные массивы
- •7.2. Массивы как наследники класса Array
- •7.3. Виды массивов и массивы многомерные
- •7.5. Массивы массивов и поверхностное копирование
- •Строки – объекты класса string
- •8.1. Строковые литералы
- •8.2. Строковые объекты и ссылки типа string
- •8.3. Операции над строками
- •8.5. Форматирование строк
- •8.6. Строка как контейнер
- •8.7. Применение строк в переключателях
- •8.8. Массивы строк
- •8.8. Сравнение строк
- •8.10. Аргументы метода Main()
- •Методы C#
- •9.2. Соотношение фиксированных параметров и аргументов
- •9.3. Параметры с типами ссылок
- •9.4. Методы с переменным числом аргументов
- •9.5. Перегрузка методов
- •9.6. Рекурсивные методы
- •9.7. Применение метода Array.Sort()
- •Класс как совокупность статических членов
- •10.1. Статические члены класса
- •10.2. Поля классов (статические поля)
- •10.3. Статические константы
- •10.4. Статические методы
- •10.5. Статический конструктор
- •10.6. Статические классы
- •Классы как типы
- •11.1. Объявление класса
- •11.2. Поля объектов
- •11.3. Объявления методов объектов
- •11.4. Пример класса и его объектов
- •11.5. Ссылка this
- •11.6. Конструкторы объектов класса
- •11.7. Деструкторы и финализаторы
- •Средства взаимодействия с объектами
- •12.1. Принцип инкапсуляции и методы объектов
- •12.2. Свойства классов
- •12.3. Автореализуемые свойства
- •12.4. Индексаторы
- •12.5. Индексаторы, имитирующие наличие контейнера
- •Включение, вложение и наследование классов
- •13.1. Включение объектов классов
- •13.2. Вложение классов
- •13.3. Наследование классов
- •13.4. Доступность членов класса при наследовании
- •13.5. Методы при наследовании
- •13.6. Абстрактные методы и абстрактные классы
- •13.7. Опечатанные классы и методы
- •13.8. Применение абстрактых классов
- •Интерфейсы
- •14.1. Два вида наследования в ООП
- •14.2. Объявления интерфейсов
- •14.3. Реализация интерфейсов
- •14.4. Интерфейс как тип
- •14.5. Интерфейсы и наследование
- •Перечисления и структуры
- •15.1. Перечисления
- •15.2. Базовый класс перечислений
- •15.3. Структуры
- •15.4. Упаковка и распаковка
- •15.5. Реализация структурами интерфейсов
- •Исключения
- •16.1. О механизме исключений
- •16.3. Свойства исключений
- •16.5. Исключения в арифметических выражениях
- •16.6. Генерация исключений
- •16.7. Пользовательские классы исключений
- •Делегаты и события
- •17.1. Синтаксис делегатов
- •17.2. Массивы делегатов
- •17.3. Многоадресные групповые экземпляры делегатов
- •17.4. Делегаты и обратные вызовы
- •17.5. Анонимные методы
- •17.6. События
- •Литература
- •Предметный указатель
Рецензенты:
Кафедра «Программное обеспечение ЭВМ и информационные технологии» Московского государственного технического университета имени Н.Э. Баумана.
(Заведующий кафедрой Б.Г.Трусов, доктор технических наук, профессор); М.В. Курак,
кандидат техических наук, доцент кафедры «Автоматизации обработки информации»
Академии бюджета и казначейства Министерства финансов Российской Федерации
Язык С# Базовый курс: учеб. пособие/ В.В Подбельский. –М.:
Финансы и статистика, 2010. – с.: ил. ISBN 978-5-279-03497-0
Доступно для первоначального знакомства и с нужной строгостью представлены классы и интерфейсы, строки и массивы, индексаторы и свойства, делегаты и события, исключения и такие основополагающие принципы объектно-ориентирован- ного программирования, как наследование, полиморфизм, инкапсуляция. Примеры программ позволяют читателю не только глубоко изучить синтаксис и семантику языка, но и получить практические навыки программирования на С#. С этой целью рассмотрены основные особенности платформы .NET Framework и возможности ее библиотек.
Для программистов, переходящих с других языков программирования на язык С#, для студентов и преподавателей, связанных с разработкой программ для платформы .NET.
Предисловие
Пособие предназначено для студентов, изучающих программирование, а также для читателей, желающих самостоятельно освоить язык программирования C#. В отличие от достаточно многочисленных руководств по C# данная книга посвящена именно основам языка, без знания которых невозможно обойтись при его практическом применении.
Такой язык программирования, как C#, нельзя изучать «линейно», условно говоря, «от аксиом к теоремам, задачам и выводам», поэтому изложение материала (языка C# и программирования на C#) будет проходить «по спирали». К некоторым понятиям, использованным в той или иной иллюстративной программе с краткими пояснениями, в следующих темах обращаются вновь, постепенно полностью объясняя их.
Пособие состоит из 17 глав. Глава 1 дает общее представление о структуре простейшей программы на языке С#. Главы 2–6 знакомят читателя с такими базовыми понятиями процедурного программирования, как константы, переменные, выражения, операторы. Однако процедурный подход к созданию программ на языке C# с неизбежностью приводит к применению тех или иных классов и объектов. Даже традиционные для языков программирования переменные базовых типов в языке C# являются «проекциями» на классы из .NET Framework. Платформа .NET Framework и особенности базовых типов языка C# как ее библиотечных классов описаны в главе 5.
Главы 7 и 8 посвящены массивам и строкам. Для массивов и строк языка C# приходится различать объекты и ссылки на них. Тем самым читатель с необходимостью приходит к пониманию назначения конструкторов и особенностям применения операции new.
В главе 9 рассмотрены синтаксис и семантика методов языка C#, все виды параметров и особенности применения в качестве параметров ссылок. Подробно описаны перегрузка методов, рекурсивные методы и методы с переменным числом аргументов.