Краткая история высокоуровневых языков программирования 6
Краткая история Windows 7
Платформа Microsoft .NET 8
Три вопроса о .NET 9
Что такое .NET 10
Зачем нужен .NET 11
Как работает технология .NET 12
Сборки, метаданные и промежуточный код 14
Язык MSIL 15
Сборка (Assembly) 15
Метаданные 17
Особенности разработки приложений .NET 18
Пространства имён 18
Общая система типов (Common Type System) 19
Встроенные и определенные пользователем типы данных 19
Перечисления 19
Классы 19
Интерфейсы 20
Делегаты 20
Указатели 20
Массивы 20
Правила межъязыкового взаимодействия (Common Language Specification) 20
.NET Framework 21
Common Language Runtime 21
Компиляторы 23
Безопасность приложения 23
Библиотека базовых классов .NET 24
.NET Framework SDK 25
Высокоуровневые службы 25
ASP.NET 25
ADO.NET 26
Windows Forms 26
Visual Studio 2005 - открытая среда разработки 26
Открытость 26
Framework .Net - единый каркас среды разработки 27
Библиотека классов NFCL - статический компонент каркаса 27
Единство каркаса 27
Встроенные примитивные типы 27
Структурные типы 28
Архитектура приложений 28
Модульность 28
Общеязыковая исполнительная среда CLR - динамический компонент каркаса 29
Двухэтапная компиляция. Управляемый модуль и управляемый код 29
Виртуальная машина 30
Исключительные ситуации 30
События 30
Общие спецификации и совместимые модули 31
Создание C# 31
Виды проектов 33
Консольный проект 34
Приложение Windows 39
Основная операция объектно – ориентированных приложений 40
Выполнение проекта по умолчанию 41
Проект WindowsHello 42
Система типов 43
Общий взгляд 43
Система типов 45
Семантика присваивания 50
Преобразование к типу object 51
Примеры преобразований 51
Семантика присваивания. Преобразования между ссылочными и значимыми типами 54
Операции "упаковать" и "распаковать" (boxing и unboxing). 55
55
Преобразования типов 56
Где, как и когда выполняются преобразования типов? 56
Преобразования ссылочных типов 56
Преобразования типов в выражениях 57
Преобразования внутри арифметического типа 57
Явные преобразования 61
Преобразования строкового типа 61
Преобразования и класс Convert 63
Проверяемые преобразования 63
Исключения и охраняемые блоки 66
Опасные вычисления в охраняемых проверяемых блоках 67
Опасные вычисления в охраняемых непроверяемых блоках 67
Опасные преобразования и методы класса Convert 68
Объявление переменных 68
Проект Variables 69
Синтаксис объявления 69
Время жизни и область видимости переменных 71
Поля 71
Глобальные переменные уровня модуля. 71
Локальные переменные 72
Глобальные переменные уровня процедуры 76
Константы 76
Выражения 77
Приоритет и порядок выполнения операций 77
Перегрузка операций 78
С чего начинается выполнение выражения 79
Операции "увеличить" и "уменьшить" (increment, decrement) 79
Операции sizeof и typeof 80
Операция new 82
Арифметические операции 82
Операции отношения 83
Операции сдвига 83
Логические операции 84
Условное выражение 86
Класс Math и его функции 87
Класс Random и его функции 89
Операторы языка C# 91
Оператор присваивания 92
Блок или составной оператор 92
Пустой оператор 94
Операторы выбора 94
Оператор if 94
Оператор switch 94
Операторы перехода 98
Оператор goto 98
Операторы break и continue 98
Оператор return 99
Операторы цикла 99
Цикл for 99
Циклы While 100
Цикл foreach 101
Процедуры и функции - функциональные модули 102
Процедуры и функции - методы класса 102
Процедуры и функции. Отличия 103
Описание методов (процедур и функций). Синтаксис 103
Список формальных аргументов 105
Тело метода 107
Вызов метода. Синтаксис 107
О соответствии списков формальных и фактических аргументов 107
Вызов метода. Семантика 108
Что нужно знать о методах? 109
Почему у методов мало аргументов? 109
Поля класса или функции без аргументов? 109
Пример: две версии класса Account 110
Функции с побочным эффектом 115
Методы. Перегрузка 116
Рекурсия 118
Массивы языка C#. 120
Объявление массивов 121
Объявление одномерных массивов 121
Динамические массивы 124
Многомерные массивы 124
Массивы массивов 125
Процедуры и массивы 126
Класс Array 127
Массивы как коллекции 129
Сортировка и поиск. Статические методы класса Array 130
Класс Object и массивы 134
Массивы объектов 135
Массивы. Семантика присваивания 138
Строки постоянной длины в C#. 140
Строки С# 140
Класс char 140
Класс char[] - массив символов 146
Классы String и StringBuilder 149
Объявление строк. Конструкторы класса string 149
Операции над строками 150
Строковые константы 151
Неизменяемый класс string 152
Метод Format 153
Методы Join и Split 155
Динамические методы класса String 157
Класс StringBuilder - построитель строк 158
Объявление строк. Конструкторы класса StringBuilder 158
Операции над строками 158
Основные методы 159
Емкость буфера 161
Классы и ООП 162
Две роли классов 162
Синтаксис класса 163
Поля класса 164
Доступ к полям 164
Методы класса 165
Области видимости методов 165
Методы-свойства 165
Индексаторы 168
Операции 169
Статические поля и методы класса 170
Константы 170
Конструкторы класса 171
Деструкторы класса 172
Проектирование класса Rational 173
Свойства класса Rational 173
Конструкторы класса Rational 174
Методы класса Rational 175
Закрытый метод НОД 175
Печать рациональных чисел 176
Тестирование создания рациональных чисел 176
Операции над рациональными числами 177
Константы класса Rational 180
Структуры и перечисления 182
Развернутые и ссылочные типы 182
Классы и структуры 183
Структуры 184
Синтаксис структур 184
Класс Rational или структура Rational 185
Встроенные структуры 187
Перечисления 188
Персоны и профессии 191
Отношения между классами 192
Отношения "является" и "имеет" 193
Отношение вложенности 193
Расширение определения клиента класса 194
Отношения между клиентами и поставщиками 195
Сам себе клиент 196
Наследование 196
Добавление полей потомком 199
Конструкторы родителей и потомков 200
Добавление методов и изменение методов родителя 201
Статический контроль типов и динамическое связывание 202
Три механизма, обеспечивающие полиморфизм 203
Пример работы с полиморфным семейством классов 205
Абстрактные классы 207
Классы без потомков 210
Интерфейсы. Множественное наследование 210
Две стратегии реализации интерфейса 210
Преобразование к классу интерфейса 212
Встроенные интерфейсы 213
Упорядоченность объектов и интерфейс IComparable 213
Сериализация объектов 220
Класс с атрибутом сериализации 221
Наследование и универсальность 228
Синтаксис универсального класса 228
Класс с универсальными методами 229
Два основных механизма объектной технологии 230
Стек. От абстрактного класса к конкретным версиям 232
Ограниченная универсальность 238
Синтаксис ограничений 239
Список с возможностью поиска элементов по ключу 240
Список с арифметикой 244
Framework .Net и универсальность 248
Библиографический список: 250