Читать «C# для начинающих» — Никита Борисович Культин онлайн
Страница 4 из 4
нагрузку идентификаторов (имен переменных, функций), использование
отступов и пустых строк, комментирование ключевых фрагментов. Все
перечисленные приемы позволяют сделать текст программы легко читаемым, и
как следствие, значительно облегчить процесс отладки и сопровождения
программы.
Набор программы
В процессе набора текста программы редактор кода автоматически выделяет
цветом правильные элементы программы: ключевые слова языка
программирования – синим, име на пространств имен – бирюзовым, строковые
константы – коричневым, комментарии зеленым. Это позволяет уже на этапе
набора контролировать правильность программы. Например, слово Console это
имя пространства имен, содержащего методы работы с консолью, и оно
выделяется бирюзовым. Если вместо Console набрать, например, Cansole, то в
20
этом случае набранное слово будет отображено черным, должно насторожить
программиста.
Редактор кода также выводит список объектов текущего пространства имен или
свойств и методов те кущего объекта, что позволяет не набирать полностью
имена на клавиатуре, а выбрать нужное имя в списке. Например, если в окне
редактора набрать System.Console и точку, то появится список свойств и
методов объекта Console и программисту остается только выбр ать нужное
свойство или метод (рис. 1.3). Обратите внимание, перед именами свойств
отображается гаечный ключ, перед именами методов – кубик. Чтобы перейти к
нужному элементу списка, надо нажать клавишу, соответствующую первому
символу этого элемента, и нажать клавишу Enter.
Рис. 1.3. Список методов и свойств объекта Console
После ввода имени метода и открывающей скобки редактор кода вывод ит
подсказку о методе (рис. 1.4).
Рис. 1.4. Пример подсказки
Компиляция
Процесс преобразования исходной программы в выполняемую называется
компиляцией. Во время компиляции исходная программа, то есть программа,
записанная на языке программирования, преобразуется в выполняемую
программу, представляющую собой последовательность двоичных чисел,
кодирующих данные и команды процессора. Здесь следует обратить внимание
на то, что, строго говоря, выполняемая программа, создаваемая компилятором
21
C#, содержит не команды процессора, а некоторое промежуточное
представление программы, которое в процессе запуска программы (загрузки
программы в опера тивную память компьютера) преобразуется в команды
процессора.
Процесс создания выполняемого файла С# программы может быть представлен
как последовательность этапов предварительной обработки, непосредственно
компиляции и компоновки (рис. 1.5).
Рис. 1.5. Процесс создания выполняемого файла
Препроцессор выполняет предварительную обработку исходной программы. Он
просматривает текст исходной программы и выполняет директивы, которые в
ней находятся (директива – инструкция, начинающаяся символом #) . Если с
исходной программе директив препроцессору нет, то обработка не выполняется
и текст программы передается компилятору без изменений.
Компилятор обрабатывает сформированную препроцессором программу:
проверяет ее на наличие синтаксических и семантичес ких. При обнаружении
синтаксической ошибки, например, необъявленного идентификатора
(переменной), выводится сообщение об ошибке. При обнаружении
семантической ошибки, например переменной, которая объявлена, но в
программе не используется, выводится предупреждение.
Если в программе нет синтаксических ошибок, то запускается процесс
компоновки. Компоновщик собирает выполняемую программу - добавляет к
сформированному компилятором коду код других модулей.
Чтобы активизировать процесс создания выполняемого файла , надо в меню
Сборка выбрать команду Собрать решение. Если в программе ошибок нет, то в
окно Вывод будет выведено сообщение об успешном завершении процесса
сборки (рис. 1.6).
22
Рис. 1.6. Пример сообщения об успешной сборке (компиляции) программы
Если в про грамме есть ошибки, то выводится сообщение об ошибках,
предупреждения и информация о неудачном завершении процесса сборки (рис.
1.7).
Рис. 1.7. Пример сообщения о неуспешной сборке программы
Кроме этого, в окне редактора кода выделяются фрагменты програ ммы,
содержащие ошибки (они подчеркиваются красной волнистой чертой), а также
―подозрительные‖ фрагменты (подчеркиваются зеленой волнистой чертой), не
являющиеся ошибками, но на которые следует обратить внимание. Именно при
обнаружении таких фрагментов компилятор выводит предупреждения.
Ошибки
Выполняемая программа (файл exe) создается только в том случае, если в
исходной программе нет синтаксических ошибок. Если в программе есть
ошибки, то программист должен их устранить. В табл. 1.1 приведены некоторые
сообщения о типичных ошибках.
Таблица 1.1. Сообщения компилятора
Сообщение Возможная причина
Ошибка - Имя … не
существует в текущем
контексте
Используется необъявленная переменная или
имя переменной в выражении не соответствует
имени, указанному в инструкци и объявления
23
переменной. Например, в программе объявлена
переменная sum, а в выражении указана
переменная Sum.
Предупреждение -
Переменной …
присвоено начальное
значение, но оно не
используется.
Переменная объявлена и ей присвоено
начальное значение, но в программе она не
используется или в выражении, где
предполагается использование этой
переменной, имя записано неправильно (в этом
случае, скорее всего, помимо предупреждения
будет выведено одно или несколько сообщений
об использование несуществующего имен и).
Например, объявлена переменная Weight а
выражении, в котором предполагается ее
использование, вместо Weight написано
weight
Процесс устранения ошибок носит итерационный характер. Обычно сначала
устраняются наиболее очевидные ошибки, например, объявля ются не
объявленные переменные или если переменная объявлена, исправляются имена
в выражениях, так, чтобы имена переменных в выражениях, соответствовали
именам переменных в инструкциях объявления. Следует обратить внимание на
то, что одна ошибка в программ е может ―тащить‖ за собой несколько других.
Например, если в рассматриваемой программе вычисления среднего веса в
инструкции объявления переменной w заменить w на W, то компилятор выведет
сообщения о трех ошибках (так как в трех местах программы использует ся имя
w) и предупреждение о неиспользуемой переменной W. Обратная замена W на w,
т.е. одно исправление, устраняет три ошибки и предупреждение.
Запуск программы
Если в программе нет ошибок, то ее можно запустить. Сделать это можно
несколькими способами: в меню Отладка выбрать команду Начать отладку
или Запуск без отладки ; сделать щелчок на кнопке Пуск (рис. 1.8); нажать
клавишу F5.
Рис. 1.8. Кнопка Пуск
24
Следует обратить внимание, если с последней компиляции в программу были
внесены изменения, то при запус ке сначала активизируется процесс
компиляции, затем, если в программе ошибок нет, программа запускается.
Окно консоли, в котором работает программа вычисления среднего веса
предметов приведено на рис. 1.9. Обратите внимание, при вводе дробных
значений в качестве десятичного разделителя введена запятая.
Рис. 1.9. Окно программы Средний вес
Исключения
Если в программе компилятор не выявил ошибок, это еще не значит, что
программа будет всегда работать правильно. Например, если в программе
Средний вес при вво де значения веса в качестве десятичного разделителя
вместо запятой ввести точку, то после нажатия < Enter> программа сначала
ненадолго ―задумается‖, затем станет активным окно редактора кода, в котором
будет выведено сообщение о возникновении исключения (ош ибки,
возникающие во время работы программы, называют исключениями; Exception
– исключение), также будет выделена строка, содержащая команду, при
выполнении которой исключение возникло (рис. 1.10).
25
Рис. 1.10. В редакторе кода выделяется команда, при выполнении которой возникло
исключение
Причина возникновения исключения в рассматриваемом примере состоит в
следующем. При стандартной для России настройке Windows правильным
десятичным разделителем является запятая . Строка, содержащая точку,
например, 1.5, не является правильным изображением дробного числа и,
поэтому, метод ToDoubele смог выполнить преобразование строки в Double
число, т.к. входная строка содержит неверный (недопустимый) символ - току.
Чтобы прервать выполнение программы, в которой возникло ис ключение, надо
в меню Отладка выбрать команду Остановить отладку или сделать щелчок на
кнопке Остановит отладку находящуюся на панели инструментов Отладка
(рис. 1.11).
Рис. 1.11. Панель инструментов Отладка
Если программу запустить из операционной систем ы ( exe файл программы,
скомпилированной в режиме Debug, находится в папке
ConsoleApp\ConsolApp\Bin\Debug, где ConsoleApp – имя папки проекта ), и тоже
неправильно ввести исходные данные, то сообщение о возникновении
исключения будет выведено в окно программы (рис. 1.12).
26
Рис. 1.12. Пример сообщения о возникновении исключения при запуске программы из
операционной системы
Завершение работы
Чтобы завершить работу над проектом, надо в меню Файл выбрать команду
Закрыть решение.
Изменение программы
Если надо вн ести изменения в программу, необходимо открыть
соответствующий проект. Для этого надо в меню Файл выбрать команду
Открыть/Решение или проект , открыть папку проекта, выбрать файл решения
(Solution) и нажать кнопку Открыть.