Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
43
32.973.26-018.1
19
,
.
19
C#
.
/
. — : ! , 2018. — 592 . — ("
$% &%).
ISBN 978-5-04-092519-3
'%
, % *
+
-%%
;
% $ $;
;
% $ $
, $
-
<%
%% +
%
+ C#.
% , ;+%
%
+,
%;%;;, +
% %
$
$-
, $%
, =
>% ;
$ +
* =
,
&
& % '%
+ .
004.43
32.973.26-018.1
3
Оглавление
21
Глава 1
Структура программы
Сердце подвластно разуму. Чувства подвласт-
ны сердцу. Разум подвластен чувствам. Круг
замкнулся.
из к/ф «Формула любви»
{
i НА ЗАМЕТКУ
Имя класса выбираем сами. Это одно слово. Название нашего един-
ственного класса, без особого ущерба для понимания ситуации, мо-
жем отождествлять с названием программы.
{
22
Знакомство с языком С#
{
i НА ЗАМЕТКУ
Вообще метод (любой, не обязательно главный) — это именованный
блок из команд. Для выполнения данных команд метод должен быть
вызван. В С# методы описываются в классах. Есть два типа мето-
дов: статические и обычные (не статические). Для вызова обычных
(не статических) методов необходимо создавать объект. Статиче-
ские методы можно вызывать без создания объекта.
Главный метод является особым. Он вызывается автоматически при
запуске программы на выполнение. В программе может быть один
и только один главный метод.
q ПОДРОБНОСТИ
В общем случае метод может возвращать результат. Возвращаемое
методом значение подставляется вместо инструкции вызова ме-
тода после того, как метод завершает выполнение. Также у метода
23
Глава 1
{
static void Main(){
}
}
24
Знакомство с языком С#
Первая программа
Для того ли я оставил свет, убежал из столицы,
чтоб погрязнуть в болоте житейском!
из к/ф «Формула любви»
class HelloWorld{
static void Main(){
!"#$%&'*+"*,$&/12#$62+$789;<= ;>?8AB
}
}
{
i НА ЗАМЕТКУ
Все команды в C# заканчиваются точкой с запятой. Размещать
команды в разных строках не обязательно, но так программный
код лучше читается. Также рекомендуется выделять блоки команд
25
Глава 1
q ПОДРОБНОСТИ
Метод представляет собой именованный блок команд. Другими
словами, имеется некоторый набор команд, у этого блока есть имя
(имя метода). При вызове метода команды из этого метода выпол-
няются. Методу могут передаваться аргументы (значения, исполь-
зуемые при выполнении команд метода).
Методы описываются в классах и бывают статическими и нестати-
ческими. Нестатический метод вызывается из объекта. Статический
метод вызывается без создания объекта. При вызове статического
метода указывается имя класса, в котором метод описан. В нашем
случае вызывается статический метод WriteLine(), который опи-
сан в классе Console.
Классы, в свою очередь, разбиты по группам. Каждая такая группа
называется пространством имен. У каждого пространства имен есть
имя. Если пространство имен не включено в программу специальной
инструкцией (как это делается — объясняется позже), то имя про-
странства имен указывается перед именем класса. Класс Console
находится в пространстве имен System. Поэтому команда вызова
статического метода WriteLine(), описанного в классе Console
из пространства имен System, выглядит как System.Console.
WriteLine().
26
Знакомство с языком С#
{
i НА ЗАМЕТКУ
Комментарии, которые начинаются с двойной косой черты, называ-
ются однострочными, поскольку должны размещаться в одной стро-
ке. Кроме однострочных комментариев, существуют и многостроч-
ные комментарии. Такой комментарий может занимать несколько
строк. Начинается многострочный комментарий с символов /*,
а заканчивается символами */.
Рис. 1.1. Создание нового проекта в окне среды разработки Microsoft Visual
Studio Express
27
Глава 1
{
i НА ЗАМЕТКУ
Для создания нового проекта можно воспользоваться пиктограм-
мой на панели инструментов или нажать комбинацию клавиш
<Ctrl>+<Shift>+<N>.
{
i НА ЗАМЕТКУ
Для выбора папки для сохранения проекта можно воспользоваться
кнопкой Browse справа от поля Location.
28
Знакомство с языком С#
q ПОДРОБНОСТИ
При создании нового проекта программа содержит начальный шаб-
лонный код. Он содержит наиболее часто используемые инструкции
и описание класса с главным методом программы (с пустым телом).
Назначение шаблонного кода — облегчить программисту работу.
Среда разработки Visual Studio позволяет настраивать (задавать)
шаблонный код, который автоматически добавляется в проект.
29
Глава 1
{
i НА ЗАМЕТКУ
Кроме сообщения, которое выводит в консольное окно программа,
там также появляется сообщение Для продолжения нажмите лю-
бую клавишу. Это сообщение добавляется автоматически опера-
ционной системой и к программе не имеет никакого отношения.
30
Знакомство с языком С#
q ПОДРОБНОСТИ
Если для компилирования и запуска воспользоваться командой Start
Debugging из меню Debug или пиктограммой на панели инструмен-
тов, то программа будет запущена, но консольное окно закроется
сразу после завершения выполнения программы. Все происходит
настолько быстро, что пользователь, как правило, не успевает про-
читать содержимое консольного окна. Если читатель столкнется
с подобной проблемой, то последней командой в программу мож-
но добавить инструкцию System.Console.ReadLine() (это должна
быть последняя команда в методе Main()).
Не исключено, что для вывода кириллического текста в консольное
окно придется выполнить некоторые настройки и для консольно-
го окна. Для этого в левом верхнем углу консольного окна следует
щелкнуть правой кнопкой мыши и в раскрывшемся списке выбрать
команду Свойства (для выполнения настроек открытого консольно-
го окна) или Умолчания (для выполнения настроек, используемых
по умолчанию). В открывшемся окне Свойства консольного окна
следует задать шрифт, который поддерживает кириллические сим-
волы, размер шрифта, фон для окна консоли и выполнить некоторые
другие настройки.
Пространство имен
Не надо громких слов, они потрясают воздух,
но не собеседника.
из к/ф «Формула любви»
31
Глава 1
class HelloWorld{
static void Main(){
'*+"*,$&/12#$62+$789;<= ;>?8AB
}
}
{
i НА ЗАМЕТКУ
Если при запуске программы консольное окно закрывается слиш-
ком быстро, то программный код метода Main() можно завершить
командой Console.ReadLine(). В таком случае консольное окно
не будет закрыто, пока пользователь не нажмет клавишу <Enter>.
Если вместо команды Console.ReadLine() использовать команду
Console.ReadKey(), то для закрытия консольного окна достаточно
будет нажать любую клавишу.
Вообще же статический метод ReadLine() из класса Console пред-
назначен для считывания текстовой строки, которую пользователь
вводит с помощью клавиатуры. Статический метод ReadKey()
из класса Console используется для считывания символа, введен-
ного пользователем с помощью клавиатуры.
32
Знакомство с языком С#
q ПОДРОБНОСТИ
Мало добавить в программный код инструкцию using System.
Windows.Forms. Необходимо добавить ссылку на соответствую-
щее пространство имен в проект. Для этого в окне Solution Explorer
(по умолчанию отображается в правом верхнем углу окна среды раз-
работки) необходимо щелкнуть правой кнопкой мыши на узле про-
екта и в раскрывшемся контекстном меню выбрать подменю Add,
а в нем команду Reference. В результате откроется окно, в котором
следует выбрать ссылку для включения в проект. Вся эта процедура
описывается и иллюстрируется далее.
33
Глава 1
class DialogDemo{
static void Main(){
Y$""ZJ$[*]&^*U78_ ;<= >?8AB
}
}
{
i НА ЗАМЕТКУ
Проект можно создавать и выполнять его настройки по-разному. Да-
лее мы иллюстрируем один из возможных способов.
Итак, на этот раз будем создавать пустой проект — для этого в окне соз-
дания проекта New Project в качестве типа проекта выбираем Empty
Project, как показано на рис. 1.7.
34
Знакомство с языком С#
q ПОДРОБНОСТИ
Для создания проекта в меню File выбираем команду New Project.
В окне New Project в левом списке в узле Visual С# выбираем пункт
Classic Desktop.
После того как объект создан, в него нужно добавить файл, в который
мы введем программный код. Для этого во внутреннем окне Solution
Explorer в правом верхнем углу окна среды разработки выбираем узел
проекта и щелкаем правой кнопкой мыши. Откроется контекстное меню
для проекта, в котором в подменю Add выбираем команду New Item, как
показано на рис. 1.8.
{
i НА ЗАМЕТКУ
Вместо контекстного меню можем воспользоваться командой Add
New Item в меню Project.
35
Глава 1
q ПОДРОБНОСТИ
В окне Solution Explorer отображается «начинка» проекта. В частно-
сти, после добавления файла в проект в узле проекта отображается
пункт с названием добавленного файла. Чтобы содержимое фай-
ла открылось в окне редактора кодов, достаточно в окне Solution
Explorer выделить мышью пункт с названием файла.
Если окно Solution Explorer по каким-то причинам не отображает-
ся, нужно в меню View выбрать команду Solution Explorer.
36
Знакомство с языком С#
38
Знакомство с языком С#
q ПОДРОБНОСТИ
Пока ссылка в проект не добавлена, команды, в которых есть обра-
щение к неподключенному пространству имен и классам из этого
пространства имен, подчеркиваются красной волнистой чертой, что
означает наличие ошибок в программном коде. Причина в том, что,
пока соответствующая ссылка не добавлена в проект, использован-
ные идентификаторы компилятору «не известны». После подключе-
ния ссылки красное подчеркивание должно исчезнуть.
Если мы используем пространство имен System, ссылка в проекте
на это пространство тоже должна быть. Но при создании консольно-
го приложения ссылка на пространство имен System (и некоторые
другие) в проект добавляется автоматически. Поэтому раньше у нас
не было необходимости выполнять описываемые настройки.
Также стоит заметить, что добавить ссылку в проект можно с помо-
щью команды Add Reference из меню Project.
Рис. 1.14. Выбор команды Properties в контекстном меню проекта для перехода
к вкладке свойств проекта
39
Глава 1
40
Знакомство с языком С#
q ПОДРОБНОСТИ
Если не изменить тип приложения на Windows Application, то при
запуске программы кроме диалогового окна откроется еще и кон-
сольное окно. Это не страшно, но не очень эстетично.
41
Глава 1
{
i НА ЗАМЕТКУ
Вместо добавления файла с кодом в пустой проект можно было
добавить класс. В этом случае в контекстном меню проекта в под-
меню Add вместо команды New Item выбирают команду Class
(см. рис. 1.8). Но, строго говоря, можно было создавать не пустой
проект, а консольное приложение. Тогда добавлять в проект файл
для ввода программного кода не придется — такой файл в проект
добавляется автоматически. Все прочие настройки выполняются
так, как описано выше.
q ПОДРОБНОСТИ
Перечисления рассматриваются немного позже. Пока же просто
отметим, что перечисление представляет собой набор констант
(фиксированных, неизменных значений). Каждая константа имеет
название. Название константы указывается вместе с названием пе-
речисления: после имени перечисления ставится точка, и затем ука-
зывается название константы. Например, константа OK из перечис-
ления MessageBoxButtons, переданная третьим аргументом методу
Show(), означает, что в диалоговом окне должна отображаться кноп-
ка с названием OK. Константа OK передается аргументом в виде ин-
струкции MessageBoxButtons.OK.
Константа Описание
OK Отображение кнопки OK
OKCancel Отображение кнопок OK и Cancel (Отмена)
YesNo Отображение кнопок Yes (Да) и No (Нет)
YesNoCancel Отображение кнопок Yes (Да), No (Нет) и Cancel (Отмена)
RetryCancel Отображение кнопок Retry (Повтор) и Cancel (Отмена)
AbortRetryIgnore Отображение кнопок Abort (Прервать), Retry (Повтор)
и Ignore (Пропустить)
Константа Пиктограмма
Asterisk Отображается пиктограмма с изображением прописной буквы i вну-
три синего круга
Error Буква X белого цвета внутри красного круга
Exclamation Восклицательный знак ! внутри желтого треугольника
43
Глава 1
44