Введение. 13
Кому предназначена эта книга. 14
Требования к системе. 14
Раздел I. Основные положения. 15
Язык С# и каркас .NET. 16
Какие цели стояли перед разработчиками С#. 16
NET Framework и библиотека классов. 16
Среда выполнения Common Language Runtime. 17
Структура программы. 17
С# и С++. 18
Указатели и управление памятью. 18
Наследование и шаблоны. 18
Типы данных. 18
Структуры. 18
Массивы. 18
Классы. 19
Синтаксические и семантические детали. 19
С#и Java. 19
Обзор среды разработки Visual Studio .NET. 20
Visual Studio .NET как новая концепция Microsoft. 20
Возможности среды разработки Visual Studio .NET. 20
Стартовая страница. 21
Создание проекта. 22
Solution Explorer. 23
Class View. 24
Properties Explorer. 24
Toolbox. 25
Визуальные свойства вспомогательных окон. 25
Меню и панель инструментов. 26
Главное меню VisualStudio.NET. 26
Создание первого приложения. 35
Windows Forms приложение. 35
Что такое форма. 35
Windows Forms в технологии .NET. 35
Подготовительные операции. 35
Создание нового проекта. 36
Файлы проекта. 36
Свойства проекта. 36
Дизайнер форм. 38
Окно кода программы. 38
Компиляция программы. 41
Output Window. 41
Исправление ошибок. 42
Запуск приложения. 42
Расширение функциональности программы. 43
Работа с консолью. 43
Метод Read. 44
Метод ReadLine. 44
Методы Write и WriteLine. 44
Раздел II. Фундаментальные понятия. 47
Основы синтаксиса С#. 48
Алфавит С#. 48
Правила образования идентификаторов. 48
Рекомендации по наименованию объектов. 49
Ключевые слова и имена. 49
Комментарии. 50
Литералы. 50
Типы данных С#. 52
Особенности использования стека и кучи. 52
Встроенные типы. 53
Преобразование встроенных типов. 54
Переменные. 54
Назначение значений переменным. 54
Определение значений переменных. 55
Константы. 56
Перечисления. 57
Строковые константы. 59
Массивы. 60
Выражения, инструкции и разделители. 62
Выражения (Expressions). 62
Инструкции (Statements). 62
Разделители (Getemiters). 63
Ветвление программ. 64
Безусловные переходы. 64
Условные переходы. 65
If else оператор. 65
Вложенные операторы условия. 67
Использование составных инструкций сравнения. 68
Оператор switch как альтернатива оператору условия. 70
Объявление переменных внутри case инструкций. 73
Switch и работа со строками. 74
Циклические операторы. 75
Оператор goto. 75
Цикл while. 76
Цикл do while. 77
Цикл for. 77
Цикл foreach. 78
break и continue. 78
Создание вечных циклов. 80
Классы. 84
Определение классов. 84
Назначение классов. 84
Состав классов. 86
Модификаторы доступа. 87
Метод Main. 88
Аргументы командной строки 89
Возвращаемые значения. 89
Несколько методов Main. 90
Инициализация классов и конструкторы. 91
Статические члены класса. 93
Константы и неизменяемые поля. 94
Константы. 94
Неизменяемые поля. 95
Вложенные классы. 97
Наследование. 98
Инициализаторы конструкторов. 102
Использование интерфейсов. 105
Изолированные классы. 106
Абстрактные классы. 107
Методы. 110
Передача параметров. 111
Перегрузка методов. 116
Переменное число параметров 118
Подмена методов. 120
Полиморфизм. 121
Статические методы. 125
Рекурсия. 127
Свойства. 129
Применение свойств. 129
Свойства только для чтения. 133
Свойства и наследование. 134
Дополнительные возможности свойств. 140
Массивы. 141
Одномерные массивы. 141
Многомерные массивы. 142
Размер и ранг массива. 145
Невыровненные массивы. 146
Оператор foreach. 149
Сортировка. 150
Индексаторы. 152
Преимущество использования индексаторов. 152
Определение индексаторов. 153
Атрибуты. 156
Назначение атрибутов. 157
Определение атрибутов. 157
Запрос информации об атрибутах. 159
Атрибуты класса. 159
Атрибуты поля. 161
Параметры атрибутов. 162
Типы параметров. 162
Типы атрибутов. 165
Определение целевого типа атрибута. 165
Атрибуты однократного и многократного использования. 167
Наследование атрибутов. 168
Идентификаторы атрибутов. 168
Интерфейсы. 170
Использование интерфейсов 170
Объявление интерфейсов 172
Создание интерфейсов 173
Инструкция is. 175
Инструкция as. 178
Явная квалификация имени члена интерфейса. 180
Сокрытие имен с помощью интерфейсов. 180
Избежание неоднозначности имен. 183
Роль интерфейсов в наследовании. 186
Комбинирование интерфейсов. 189
Делегаты и обработчики событий. 192
Методы обратного вызова. 192
Делегаты как статические члены. 195
Составные делегаты. 199
Определение событий с помощью делегатов. 209
Особые возможности С# и Visual Studio .NET. 212
XML документирование кода С#. 212
Правила документирования. 215
Работа со строками. 216
Особенности типа Sytem String. 216
Создание строк. 217
System. Object.ToStringO. 218
Манипулирование строками. 218
Поиск подстроки. 224
Разбиение строк. 226
Класс StringBuilder. 228
Регулярные выражения. 230
Применение регулярных выражений. 230
Основы синтаксиса регулярных выражений. 231
Классы символов (Characteclasses). 231
Вантификаторыу или умножители (Quantifiers). 232
Концы и начала строк. 232
Граница слова. 232
Вариации и группировка. 233
Использование регулярных выражений: Regex. 234
Использование Match коллекций. 236
Использование групп. 237
Использование CaptureCollection. 240
Раздел III. Программирование для windows. 243
Кнопки и блок группировки. 244
Кнопки —Button. 244
Чекбоксы — Checkbox. 244
Радиокнопки —RadioButton. 244
Блок группировки — GroupBox. 245
Поля ввода и списки. 251
Поле ввода—TextBox. 251
Расширенное поле ввода—RichTextBox. 251
Список — ListBox. 251
Помечаемый список — CheckedListBox. 251
Выпадающий список — ComboBox. 251
Метки, индикаторы прогресса и бегунки. 259
Метка — Label. 259
Метка — LinkLabel. 259
Бегунок — TrackBar. 259
Индикатор прогресса —ProgressBar. 259
Регулятор численных значений—NumericUpDown. 260
ListView и TreeView. 264
Список — ListView. 264
Дерево —TreeView. 264
Работа со списком. 266
Работа с деревом. 268
Спиок изображений ImageList. 271
ImageList. 271
Использование ImageList и ListView. 271
Использование ImageList и TreeView. 273
Полосы прокрутки. 274
Общие сведения. 274
Свойства полос прокрутки. 274
События полосы прокрутки. 275
Меню. 277
Создание головного меню. 277
Создание вложенного меню. 278
Обработка сообщений меню. 279
Контекстное меню. 280
Пометка пунктов меню. 284
Панель инструментов —ToolBar. 287
Общие сведения. 287
Работа с редактором изображений. 287
Создание панели инструментов. 289
Создание MDI приложений. 293
Родительские и дочерние формы. 293
Создание родительской формы. 293
Обработка сообщений мыши. 298
Виды событий. 298
Параметры событий. 298
Работа с графикой. 300
Особенности GDI+. 300
Рисование объектов. 300
Рисование карандашом. 301
Рисование текста и графических примитивов. 303
Работа с клавиатурой. 306
Сообщения клавиатуры. 306
Класс KeyEventArgs. 308
Таймер и время. 309
Компонент Timer. 309
Компонент DateTimePicker. 309
Структура DateTime. 310
Формат строки времени. 310
Настройка формы. 311
Обработка таймера 311
Файлы. 313
Понятие потоков. 313
Атрибуты открытия файлов. 314
Диалоги открытия и сохранения файлов. 314
33-Работа с базами данных. 317
Реляционная модель баз данных. 317
Что такое реляционная база данных? 317
Таблицы записи и поля. 319
Нормализация. 320
Язык SQL и предложение SELECT. 320
Основные обозначения, используемые в предложении SELECT. 321
Формат предложения SELECT. 322
Модель объектов ADO.NET. 323
DataSet. 323
Таблицы и поля (объекты DataTable и DataColumn) 323
Связи между таблицами (объект Data Relation) 324
Строки (объект Data Row) 324
DataAdapter 324
DBCommand и DBConnection 324
Работа с ADO.NET. 325
Использование визуальной среды для работы с ADO.NET. 325
Программирование компонент баз данных. 334
Использование OLE DВ для доступа к данным. 337
Возможности Visual Studio .NET.
при использовании OLE DВ. 337
Использование DataGrid. 344
Возможности DataGrid. 344
Создание примера приложения. 344
Анализ кода программы. 346
Работа с приложением. 347
Детальная настройка DataSet. 348
34. Отладка программ. 352
Пошаговый режим. 353
Точки останова. 353
Безусловные точки останова. 354
Условные тонки останова. 355
Просмотр переменных. 357
Стек вызова функций. 358
Так что же лучше, С# или Java? 360
С#: эволюция Visual J++. 361
Сходство С# и Java. 362
Класс Object. 363
Модификаторы доступа 363
Что в С# лучше, чем в Java. 363
Контроль версий. 363
Средства отладки во время исполнения. 364
Ref- и out-параметры. 364
Виртуальные методы. 365
Перечисления (enums). 365
Тип данных decimal. 365
Выражения switch. 365
Делегаты и события. 366
Простые типы (Value-типы). 366
Свойства. 367
Индексируемые свойства и свойства по умолчанию. 368
Массивы, коллекции и итерации. 368
Интерфейсы. 369
Многомерные массивы. 370
Приложение. 371
Полный листинг программы «Графический редактор». 371