Рис. 1.1. Схема процесса компиляции.
Содержание
Введение в язык программирования C#. 6
Первое знакомство с С#. 6
Знакомство с.NET. 6
Языки программирования и компиляторы.. 8
Алгоритм. 9
Синтаксис языка программирования С#. 11
Алфавит языка программирования С#. 11
Идентификаторы.. 11
Литералы.. 12
Типы данных языка программирования С#. 14
Встроенные типы.. 15
Совместимость целочисленных типов. 16
Явное и неявное преобразование типов. 19
Переменные в языке программирования С#. 21
Присваивание значений переменным. 21
Бинарные операции. 22
Операторы ветвления. 23
Простой оператор if 23
Оператор if / else. 23
Вложенные операторы if 25
Операторы if-else с несколькими ветвями. 27
Операции сравнения и логические выражения. 27
Логические операции. 29
Операция логического «И». 29
Операция логического ИЛИ: || 30
Операция логического НЕ:! 31
Область видимости переменных. 31
Оператор Switch. 34
Правила использования оператора switch. 36
Рекомендации по использованию оператора switch. 37
Операторы итерации. 39
|
|
Оператор цикла while. 39
Оператор цикла do-while. 41
Оператор цикла for 43
Оператор break. 44
Оператор continue. 45
Вложенные операторы итерации. 46
Массивы. 48
Одномерные массивы.. 48
Общие сведения. 48
Перебор элементов массива Оператор for и foreach. 50
Многомерные массивы.. 51
Тип char. 52
Тип string. 53
Работа со строками. 53
Доступ к отдельным символам в строке. 54
Разработка алгоритма выборки слов. 55
Некоторые методы для работы со строками. 57
Объектно-ориентированное программирование. 60
ООП основные понятия и предпосылки возникновения. 60
Концепции ООП.. 61
Сборки. 62
Элементы класса и применение методов. 64
Обзор элементов класса. 65
Методы.. 69
Объявление методов. 69
Ссылочные параметры. 71
Переменное число аргументов метода. 74
Перегрузка методов. Вызов методов с одинаковым именем и разными аргументами 75
Статические методы. 80
Конструкторы и деструкторы.. 82
Конструкторы экземпляра. 82
Вызов конструктора экземпляра. 84
Закрытые конструкторы экземпляра. 84
Статические конструкторы.. 85
Член со спецификатором readonly. 86
Сборка мусора. 87
Основные задачи сборщика мусора. 90
Свойства и наследование. 92
Свойства. 92
Основы наследования. 94
Предпосылки появления наследования. 96
Синтаксис наследования. 100
Визуальное программирование. 102
Принципы разработки пользовательского интерфейса. 102
Формы, элементы управления и меню.. 102
Принципы дизайна интерфейса. 103
Принцип простота. 104
Композиция формы.. 105
Согласованность. 105
Эстетика внешнего вида. 106
Изображения и значки. 107
Формы в приложениях C#. 108
Работа с формами. 108
Добавление формы к проекту. 108
Выбор первоначального размещения формы.. 109
|
|
Изменение внешнего вида формы.. 109
Изменение заголовка, значка и рамки формы.. 110
Свойства BackColor, ForeColor и Text 110
Свойства Font, Cursor и BackGroundlmage. 111
Прозрачность формы.. 111
Выбор рамки для формы.. 113
Кнопки изменения размеров формы.. 113
Добавление фонового изображения. 114
Изменение формы курсора. 115
Текстовые поля. 115
Добавление и настройка текстовых полей. 115
Изменение текста надписи. 115
Изменение шрифта. 116
Цвет текста и фона. 116
Рамка вокруг поля. 116
Изменение курсора мыши. 116
Выравнивание текста. 116
Меню.. 117
Добавление меню.. 117
Позиционирование элементов управления в форме. 118
Привязка к сетке. 118
Настройка взаимного расположения элементов формы.. 119
Выравнивание. 119
Установка размеров. 119
Установка промежутков между элементами. 120
Центровка элементов в окне формы.. 120
Передний и задний план. 120
Кнопки. 121
Надпись на кнопке. 121
Шрифт на кнопке. 121
Цвет. 121
Выравнивание текста. 121
Стиль кнопки. 122
Блокирование кнопки. 122
Изображение на поверхности кнопки. 123
Фоновое изображение для кнопки. 123
CheckBox и RadioButton. 123
Списки. 124
Список ListBox. 125
Список CheckedListBox. 126
Список DomainUpDown. 127
Элемент управления NumericUpDown. 127
Элемент управления TrackBar 129
Форма и клавиша табуляции. 130
Установка порядка передачи фокуса при нажатии клавиши Tab. 130
Свойство TabStop. 131
Вложенные элементы управления и контейнеры.. 131
Применение элементов управления Group Box и Panel. 132
Элемент управления TabControl. 132
Стыковка и фиксация элементов управления. 133
Свойство Anchor.. 133
Свойство Dock.. 134
Методы формы.. 134
Метод Show().. 135
Метод ShowDialog().. 135
Метод Activate().. 136
Метод Hide().. 136
Метод Close().. 136
События формы. 137
События жизненного цикла формы.. 137
Событие Load.. 137
События Activated и Deactivated.. 137
Событие VisibleChanged.. 138
Событие Closing.. 138
Событие Closed.. 138
Обработка событий. 138
Проверка данных вводимых пользователем.. 140
Применение свойств элемента управления TextBox к проверке данных вводимых пользователем.. 140
MaxLength. 140
PasswordChar 141
ReadOnly. 141
Multiline. 141
Применение событий для проверки на уровне поля. 141
События KeyDown и KeyUp. 141
Событие KeyPress. 142
Работа с фокусом ввода. 143
Проверка на уровне формы.. 145
Оповещение пользователя об ошибках ввода. 145
Компонент ErrorProvider 146
Отображение сообщений об ошибках. 146
Тема 1. Введение в язык программирования C#
1.1. Первое знакомство с языком программирования С#
С# (произносится как "си шарп") — это новый язык программирования, в котором, по замыслу создателей, должны сочетаться выразительность и простота. Его цель — позволить программисту создавать сложные высокопроизводительные программы.
В 1998 году перешедший в Microsoft создатель языков Delphi и Turbo Pascal Андерс Хейльсберг (Anders Hejlsberg) начал со своей командой работу над первой версией языка С#. Его авторы попытались объединить в нем то, что нравилось им и многим другим программистам в уже существовавших языках. При этом в С# были добавлены новые функции, соответствующие возможностям и потребностям сегодняшнего дня.
Языки программирования и компиляторы
Слово программа часто используется для описания двух различных элементов - исполняемой программы целиком или фрагмента исходного кода. В данном случае термины "исходный код", "исходная программа" или просто "код", используются в отношении фрагмента исходного кода. Исполняемая программа называется "исполняемой программой", "приложением" либо просто "программой".
Программировать на первых компьютерах, изготовленных в сороковых годах прошлого столетия, было очень непросто. Для этого использовался машинный язык, который состоял из последовательностей битов, напрямую управляющих простыми действиями процессора. Программирование на уровне машинного языка — чрезвычайно трудоемкое, нудное и утомительное занятие. Возможность абстрагироваться от машинного языка значительно упростило процесс программирования, и вскоре появились другие языки высокого уровня. Одним из последних дополнений в семье языков высокого уровня стал С#.
|
|
Однако как бы высоко мы ни уходили от базовых инструкций процессора, нам по-прежнему нужен машинный код, который аппаратное обеспечение компьютера может понимать — а значит, и исполнять. Традиционно, превращение исходного кода, написанного на языке высокого уровня, в машинный код осуществляли системные программы, которые называются компиляторами,
На рис.1.1. приведена простая иллюстрация того, как исходный код типичного языка высокого уровня превращается в исполняемую программу.
Написанный текст, который содержит инструкции языка высокого уровня, называется исходным кодом. В случае С# этот исходный код хранится в файле с расширением.cs. Чтобы преобразовать исходный код в машинный, требуется компилятор. Результатом компиляции становится исполняемая программа, которая состоит из инструкций машинного языка.
Компьютер — это совокупность аппаратного и программного обеспечения.
Аппаратное обеспечение (hardware) — это физические, осязаемые компоненты компьютера, а программное обеспечение (software) — это программы, которые также называются приложениями. Программы содержат инструкции, которые исполняются аппаратным обеспечением.
Аппаратное обеспечение. Когда пользователь взаимодействует с компьютером, он обеспечивает вводинформации. В ответ на это, компьютер обрабатывает введенные данные, возвращая пользователю результаты — т.е. обеспечивает вывод информации. Ввод может осуществляться в форме команд, текста, числовой информации или изображений. Вывод также может иметь самые разные формы — это могут быть и результаты расчетов в электронных таблицах, и письмо, отпечатанное на принтере, и движущееся на экране изображение автомобиля в имитаторе автогонок,
Для обеспечения ввода пользовательской информации у компьютера есть несколько устройств ввода — к примеру, клавиатура и мышь.
|
|
Пользователю вывод чаще всего предоставляется такими устройствами, как экран и принтер, однако устройства выводаочень разнообразны, и некоторые из них предназначены для узко специализированных задач.
В состав компьютера входят также менее очевидные для пользователя компоненты — процессор и память.
Процессор — устройство внутри компьютера, выполняющее инструкции, из которых состоят программы. Другие названия процессора — ЦПУ (центральное процессорное устройство). Существует множество типов процессоров. Хорошо известными примерами являются процессоры Pentium различных поколений.
Процессор способен выполнять лишь очень простые инструкции, например элементарные арифметические операции или перемещение данных, скажем, чисел, из одной точки памяти в другую. Однако делает он это с очень высокой скоростью, что позволяет ему, проходя через головоломные комбинации инструкций, выполнять очень сложные операции.
Память компьютера можно разделить на два типа — основную (оперативную) и вспомогательную (долговременную) память.
Вспомогательная память включает устройства, предназначенные для длительного или постоянного хранения данных, которые считываются лишь в случае необходимости. Типичными примерами вспомогательной памяти являются флоппи-диски, диски CD-ROM и жесткие диски,
В основной, или оперативной, памяти хранятся исполняемые в данный момент программы, а также результаты промежуточных вычислений. Английский термин для оперативной памяти — RAM — Random Access Memory, или память произвольного доступа.
Помимо исполняемых программ и их частей, в оперативной памяти хранится значительная часть данных, с которыми работают программы. Примерами данных могут быть скорости ветра в различных областях тайфуна в программе, моделирующей тайфун, либо текущее положение на трассе гоночного автомобиля в автоимитаторе. С#, как и другие языки, позволяет программисту присваивать данным имена, а затем и обращаться к ним по этим именам. Таким образом, внутренние механизмы функционирования оперативной памяти почти всегда остаются скрытыми от программиста. Ими занимается сам С# вместе с операционной системой компьютера. Однако чтобы создавать корректные программы, программист должен все же выбирать способ представления используемых программой значений в оперативной памяти. От того, насколько правильно он это делает, зависят компактность и скорость программы.
Программное обеспечение. В сущности, компьютерное программирование — это создание программного обеспечения, которое заполняет пробел между очень примитивными операциями, реализованными в аппаратном обеспечении (описанными выше и практически бесполезными для конечного пользователя) и программами типа текстовых редакторов или табличных процессоров, в которых реализована функциональность, направленная на удовлетворение конкретных нужд конечного пользователя.