C# для начинающих
Шрифт:
Запись программы
Инструкции программы записываются последовательно, одна за другой. После каждой инструкции ставится точка с запятой. Хотя в одной строке можно записать несколько инструкций, обычно каждую инструкцию программы пишут на отдельной строке.
Некоторые инструкции, например, инструкции выбора (if, switch), циклов (for, while), в соответствии с правилами хорошего стиля программирования записывают в несколько строк и для выделения логической структуры инструкции, используют отступы.
Для облегчения понимания логики работы программы в текст программы можно, и нужно, включать комментарии .
Для выделения структуры программы можно также использовать пустые строки.
Возможность записи инструкций в несколько строк, использование отступов, пустых строк и комментариев позволяет представить одну и ту же программу в разном виде. Как правильно записать программу? Существует понятие "Хороший стиль программирования", которое можно определить как совокупность приемов, используемых в процессе составления программы. Очевидно, что программист должен следовать хорошему стилю программирования. Но что такое хороший стиль? Общепринято, что хороший стиль программирования предполагает использование несущих смысловую нагрузку идентификаторов (имен переменных, функций), использование отступов и пустых строк, комментирование ключевых фрагментов. Все перечисленные приемы позволяют сделать текст программы легко читаемым, и как следствие, значительно облегчить процесс отладки и сопровождения программы.
Набор программы
В процессе набора текста программы редактор кода автоматически выделяет цветом правильные элементы программы: ключевые слова языка программирования – синим, имена пространств имен – бирюзовым, строковые константы – коричневым, комментарии зеленым. Это позволяет уже на этапе набора контролировать правильность программы. Например, слово Console это имя пространства имен, содержащего методы работы с консолью, и оно выделяется бирюзовым. Если вместо Console набрать, например, Cansole, то в этом случае набранное слово будет отображено черным, должно насторожить программиста.
Редактор кода также выводит список объектов текущего пространства имен или свойств и методов текущего объекта, что позволяет не набирать полностью имена на клавиатуре, а выбрать нужное имя в списке. Например, если в окне редактора набрать System.Console и точку, то появится список свойств и методов объекта Console и программисту остается только выбрать нужное свойство или метод (рис. ). Обратите внимание, перед именами свойств отображается гаечный ключ, перед именами методов – кубик. Чтобы перейти к нужному элементу списка, надо нажать клавишу, соответствующую первому символу этого элемента, и нажать <Enter>.
Рис. 1.23. Список методов и свойств объекта Console
После ввода имени метода и открывающей скобки редактор кода выводит подсказку о методе (рис. 1.22).
Рис. 1.22. Пример подсказки
Трансляция
Процесс преобразования исходной программы в выполняемую называется трансляцией. Во время трансляции исходная программа, то есть программа, записанная на языке программирования, преобразуется
в выполняемую программу, представляющую собой последовательность двоичных чисел, кодирующих данные и команды процессора. Здесь следует обратить внимание на то, что, строго говоря, выполняемая программа, создаваемая транслятором C#, содержит не команды процессора, а некоторое промежуточное представление программы, которое в процессе запуска программы (загрузки программы в операционную память компьютера) преобразуется в команды процессора.Процесс создания выполняемого файла С# программы может быть представлен как последовательность этапов предварительной обработки, компиляции и компоновки (рис. ).
Рис. Процесс создания выполняемого файла
Препроцессор выполняет предварительную обработку исходной программы. Он просматривает текст исходной программы и выполняет директивы, которые в ней находятся (директива – инструкция, начинающаяся символом #). Если с исходной программе директив препроцессору нет, то обработка не выполняется и текст программы передается компилятору без изменений.
Компилятор обрабатывает сформированную препроцессором программу: проверяет ее на наличие синтаксических и семантических. При обнаружении синтаксической ошибки, например, необъявленного идентификатора (переменной), выводится сообщение об ошибке. При обнаружении семантической ошибки, например переменной, которая объявлена, но в программе не используется, выводится предупреждение.
Если в программе нет синтаксических ошибок, то запускается процесс компоновки. Компоновщик собирает выполняемую программу – добавляет к сформированному компилятором коду код других модулей.
Чтобы активизировать процесс создания выполняемого файла, надо в меню Сборка выбрать команду Собрать решение. Если в программе ошибок нет, то в окно Вывод будет выведено сообщение об успешном завершении процесса сборки (рис . ).
Рис. Пример сообщения об успешной сборке программы
Если в программе есть ошибки, то выводится сообщение об ошибках, предупреждения и информация о неудачном завершении процесса сборки (рис. ).
Рис. Пример сообщения о неуспешной сборке программы
Кроме этого, в окне редактора кода выделяются фрагменты программы, содержащие ошибки (они подчеркиваются красной волнистой чертой), а также “подозрительные” фрагменты (подчеркиваются зеленой волнистой чертой), не являющиеся ошибками, но на которые следует обратить внимание. Именно при обнаружении таких фрагментов компилятор выводит предупреждения.
Ошибки
Выполняемая программа (файл exe) создается только в том случае, если в исходной программе нет синтаксических ошибок. Если в программе есть ошибки, то программист должен их устранить. В табл. приведены некоторые сообщения о типичных ошибках.
Таблица.. Сообщения об ошибках
Сообщение
Возможная причина
Ошибка – Имя … не существует в текущем контексте
Используется необъявленная переменная или имя переменной в выражении не соответствует имени, указанному в инструкции объявления переменной. Например, в программе объявлена переменная sum, а в выражении указана переменная summ или Sum.
Предупреждение – Переменной … присвоено начальное значение, но оно не используется.