Элементарная обработка событий ........................................................................... 203
Глава 6. Важные конструкции .................................................................211
Перечисления .................................................................................................................. 211
Знакомство со структурами ....................................................................................... 214
Абстрактные классы ...................................................................................................... 218
Интерфейсы ..................................................................................................................... 227
Интерфейсные переменные ....................................................................................... 237
Глава 7. Методы и классы во всей красе ...................................................242
Механизм передачи аргументов методам .............................................................. 242
Аргументы без значений и переменное количество аргументов ................... 251
Передача типа в качестве параметра ....................................................................... 256
Использование обобщенного типа данных ........................................................... 261
Обработка исключительных ситуаций ................................................................... 265
Многопоточное программирование ........................................................................ 273
Глава 8. Приложение с графическим интерфейсом: учебный проект .........280
Общие сведения о графических элементах .......................................................... 282
Программный код и выполнение программы ...................................................... 284
Наиболее значимые места программного кода .................................................... 300
Вместо заключения. Графический конструктор .........................................305
Создание простого окна с кнопкой .......................................................................... 306
ВСТУПЛЕНИЕ Язык
программирования C#
Наука — это организованное знание.
Г. Спенсер
У прогрессивного человечества, форпостом которого является армия про-
граммистов, есть такие чудесные языки программирования, как C++ и Java.
На первый взгляд может показаться, что этого вполне достаточно. Но не
все так просто.
Какой же язык программирования дополняет тандем из C++ и Java? Это
язык программирования C# (читается « си шарп»).
ПРИМЕЧАНИЕ Такое довольно оригинальное название языка программирования
имеет следующее не менее оригинальное объяснение. Как извест-
но, оператор инкремента ++, который используется в С++, Java и C#, предназначен для увеличения на единицу операнда, который ис-
пользуется с этим оператором. Поэтому, например, название С++
можно объяснить как «следующая версия после С». Язык C# — это
«следующая версия после С++». Символ # в данном случае интер-
претируется как два оператора инкремента ++, объединенных, путем
«сдвига» и «уплотнения» четырех плюсов (по два плюса в ряд), в один символ.
Язык программирования C# достаточно молодой. Он создавался в конце
90-х годов прошлого столетия разработчиками из компании Microsoft. Од-
ним из отцов-основателей языка считается Андерс Хейлсберг — тот самый,
8
Вступление. Язык программирования C#
который создал себе имя как идейный архитектор таких чудесных проек-
тов, как Turbo Pascal и Delphi. Идеологически и синтаксически язык C#
близок к С++ и Java. Во всяком случае, если читатель знаком хотя бы с од-
ним из этих языков, он найдет для себя много знакомых пассажей. Все это
не случайно, поскольку язык C# является логическим продолжением язы-
ка C++ (во всяком случае, по мнению разработчиков языка) и в некотором
смысле конкурентом языка Java. Но обо всем по порядку.
Краткий курс истории языкознания
Разница между языками столь велика, что
одно и то же выражение кажется грубым
в одном языке, и возвышенным в другом.
Дж. Драйден
Вначале был язык программирования, и это был язык С. Затем появился
язык С++, который стал расширением языка С до объектно-ориентиро ван-
ной парадигмы. Другими словами, в языке С++ появилась возможность
использовать все ужасные атрибуты объектно-ориентрованного програм-
мирования (сокращенно ООП): классы, объекты, наследование и многое
другое. Поэтому язык С++ во многом стал «законодателем моды» и задал
стиль на годы вперед. Кроме того, принципиальная особенность языка С++
состоит в том, что это язык «переходной» — в С++ можно писать как про-
граммы в рамках парадигмы ООП, так и обычные программы, не имеющие
никакого отношения к ООП.
ПРИМЕЧАНИЕ Другими словами, при создании программного кода в С++ классы
и объекты можно использовать, а можно не использовать. В языках