Несмотря на то, что пример программы Example.cs довольно краток, в нем демонстрируется ряд ключевых средств, типичных для всех программ на C#. Проанализируем более подробно каждую строку этой программы, начиная с ее имени.
В отличие от ряда других языков программирования, и в особенности Java, где имя файла программы имеет большое значение, имя программы на C# может быть произвольным. Ранее вам было предложено присвоить программе из первого примера имя Example.cs, чтобы успешно скомпилировать и выполнить ее, но в C# файл с исходным текстом этой программы можно было бы назвать как угодно. Например, его можно было назвать Sample.cs, Test.cs или даже X.cs.
В файлах с исходным текстом программ на C# условно принято расширение .cs
, и это условие вы должны соблюдать. Кроме того, многие программисты называют файлы с исходным текстом своих программ по имени основного класса, определенного в программе. Именно поэтому в рассматриваемом здесь примере было выбрано имя файла Example.cs. Но поскольку имена программ на C# могут быть произвольными, то они не указываются в большинстве примеров программ, приведенных в настоящем курсе. Поэтому вы вольны сами выбирать для них имена.
Итак, анализируемая программа начинается с таких строк.
/*
Это простая программа на C#.
Назовем ее Example.cs.
*/
Эти строки образуют комментарий. Как и в большинстве других языков программирования, в C# допускается вводить комментарии в файл с исходным текстом программы. Содержимое комментария игнорируется компилятором. Но, с другой стороны, в комментарии дается краткое описание или пояснение работы программы для всех, кто читает ее исходный текст. В данном случае в комментарии дается описание программы и напоминание о том, что ее исходный файл называется Example.cs. Разумеется, в комментариях к реальным приложениям обычно поясняется работа отдельных частей программы или же функции конкретных средств.
В C# поддерживаются три стиля комментариев. Один из них приводится в самом начале программы и называется многострочным комментарием. Этот стиль комментария должен начинаться символами /*
и оканчиваться символами */
. Все, что находится между этими символами, игнорируется компилятором. Как следует из его названия, многострочный комментарий может состоять из нескольких строк.
Рассмотрим следующую строку программы.
using System;
Эта строка означает, что в программе используется пространство имен System
. В C# пространство имен определяет область объявлений. Подробнее о пространстве имен речь пойдет далее в этом курсе, а до тех пор поясним вкратце его назначение. Благодаря пространству имен одно множество имен отделяется от других. По существу, имена, объявляемые в одном пространстве имен, не вступают в конфликт с именами, объявляемыми в другом пространстве имен.
В анализируемой программе используется пространство имен System
, которое зарезервировано для элементов, связанных с библиотекой классов среды .NET Framework, применяемой в C#. Ключевое слово using
просто констатирует тот факт, что в программе используются имена в заданном пространстве имен. (Попутно обратим внимание на весьма любопытную возможность создавать собственные пространства имен, что особенно полезно для работы над крупными проектами.)
Перейдем к следующей строке программы.
class Example {
В этой строке ключевое слово class
служит для объявления вновь определяемого класса. Как упоминалось выше, класс является основной единицей инкапсуляции в C#, a Example
— это имя класса. Определение класса начинается с открывающей фигурной скобки ({
) и оканчивается закрывающей фигурной скобкой (}
). Элементы, заключенные в эти фигурные скобки, являются членами класса. Не вдаваясь пока что в подробности, достаточно сказать, что в C# большая часть действий, выполняемых в программе, происходит именно в классе.
Следующая строка программы содержит однострочный комментарий.
// Любая программа на С# начинается с вызова метода Main().
Это второй стиль комментариев, поддерживаемых в C#. Однострочный комментарий начинается и оканчивается символами //
. Несмотря на различие стилей комментариев, программисты нередко пользуются многострочными комментариями для более длинных примечаний и однострочными комментариями для коротких, построчных примечаний к программе.
Перейдем к анализу следующей строки программы.
static void Main() {
Эта строка начинается с метода Main()
. Как упоминалось выше, в C# подпрограмма называется методом. И, как поясняется в предшествующем комментарии, именно с этой строки начинается выполнение программы. Выполнение всех приложений C# начинается с вызова метода Main()
. Разбирать полностью значение каждого элемента данной строки пока что не имеет смысла, потому что для этого нужно знать ряд других средств C#. Но поскольку данная строка используется во многих примерах программ, приведенных в этом курсе, то проанализируем ее вкратце.
Данная строка начинается с ключевого слова static
. Метод, определяемый ключевым словом static
, может вызываться до создания объекта его класса. Необходимость в этом объясняется тем, что метод Main()
вызывается при запуске программы.
Ключевое слово void
указывает на то, что метод Main()
не возвращает значение. В дальнейшем вы узнаете, что методы могут также возвращать значения. Пустые круглые скобки после имени метода Main
означают, что этому методу не передается никакой информации. Теоретически методу Main()
можно передать информацию, но в данном примере этого не делается. И последним элементом анализируемой строки является символ {
, обозначающий начало тела метода Main()
. Весь код, составляющий тело метода, находится между открывающими и закрывающими фигурными скобками.
Рассмотрим следующую строку программы. Обратите внимание на то, что она находится внутри метода Main()
.
Console.WriteLine("Простая программа на C#.");
В этой строке осуществляется вывод на экран текстовой строки “Простая программа на C#.”. Сам вывод выполняется встроенным методом WriteLine()
. В данном примере метод WriteLine()
выводит на экран строку, которая ему передается. Информация, передаваемая методу, называется аргументом.
Помимо текстовых строк, метод WriteLine()
позволяет выводить на экран другие виды информации. Анализируемая строка начинается с Console
— имени предопределенного класса, поддерживающего ввод-вывод на консоль. Сочетание обозначений Console
и WriteLine()
указывает компилятору на то, что метод WriteLine()
является членом класса Console
. Применение в C# объекта для определения вывода на консоль служит еще одним свидетельством объектно-ориентированного характера этого языка программирования.
Обратите внимание на то, что оператор, содержащий вызов метода WriteLine()
, оканчивается точкой с запятой, как, впрочем, и рассматривавшаяся ранее директива using System
. Как правило, операторы в C# оканчиваются точкой с запятой. Исключением из этого правила служат блоки, которые начинаются символом {
и оканчиваются символом }
. Именно поэтому строки программы с этими символами не оканчиваются точкой с запятой. Блоки обеспечивают механизм группирования операторов и рассматриваются далее в этой главе.
Первый символ }
в анализируемой программе завершает метод Main()
, а второй — определение класса Example
.
И наконец, в C# различаются прописные и строчные буквы. Несоблюдение этого правила может привести к серьезным осложнениям. Так, если вы неумышленно наберете main
вместо Main
или же writeline
вместо WriteLine
, анализируемая программа окажется ошибочной. Более того, компилятор C# не предоставит возможность выполнить классы, которые не содержат метод Main()
, хотя и скомпилирует их. Поэтому если вы неверно наберете имя метода Main
, то получите от компилятора сообщение об ошибке, уведомляющее о том, что в исполняемом файле Example.exe не определена точка входа.
Применение интегрированной среды разработки Visual Studio | Обработка синтаксических ошибок |