Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Руководство_по_C#.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
10 Мб
Скачать
☆

3.2Простая программа на c#

Давайте создадим новое консольное приложение в среде Visual Studio 2010 и наберем следующий код:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

// Форматируем шапку программы

Console.BackgroundColor = ConsoleColor.Green;

Console.ForegroundColor = ConsoleColor.Black;

Console.WriteLine("********************");

Console.WriteLine("**** Мой проект ****");

Console.WriteLine("********************");

// Основная программа

Console.BackgroundColor = ConsoleColor.Black;

Console.ForegroundColor = ConsoleColor.Green;

Console.WriteLine();

Console.WriteLine("Hello, World!");

// Ожидание нажатия клавиши Enter перед завершением работы

Console.ReadLine();

}

}

}

В результате получилось определение типа класса, поддерживающее единственный метод по имени Main(). По умолчанию классу, в котором определяется метод Main(), в Visual Studio 2010 назначается имя Program; при желании это имя легко изменить. Класс, определяющий метод Main(), должен обязательно присутствовать в каждом исполняемом приложении на C# (будь то консольная программа, настольная программа для Windows или служба Windows), поскольку он применяется для обозначения точки входа в приложение.

Чтобы посмотреть результат работы данного приложения на этапе отладки, в программной среде Visual Studio 2010 необходимо нажать кнопку "Начать отладку" или нажать <F5>. Результатом отладки этого приложения будет консольное окно следующего вида:

Давайте проанализируем данную программу более подробно, начиная с ее имени.

В отличие от ряда других языков программирования, и в особенности Java, где имя файла программы имеет большое значение, имя программы на C# может быть произвольным. Visual Studio по умолчанию задает имя Program.cs, при этом в C# файл с исходным текстом этой программы можно было бы назвать как угодно. Например, его можно было назвать Sample.cs, Test.cs или даже X.cs.

Обратите внимание, что в файлах с исходным текстом программ на C# условно принято расширение .cs, и это условие вы должны соблюдать. Кроме того, многие программисты называют файлы с исходным текстом своих программ по имени основного класса, определенного в программе.

Рассмотрим первую строку программы:

using System;

Эта строка означает, что в программе используется пространство имен System. В C# пространство имен определяет область объявлений. Благодаря пространству имен одно множество имен отделяется от других. По существу, имена, объявляемые в одном пространстве имен, не вступают в конфликт с именами, объявляемыми в другом пространстве имен. В анализируемой программе используется пространство имен System, которое зарезервировано для элементов, связанных с библиотекой классов среды .NET Framework, применяемой в C#. Ключевое слово using просто констатирует тот факт, что в программе используются имена в заданном пространстве имен. (Попутно обратим внимание на весьма любопытную возможность создавать собственные пространства имен, что особенно полезно для работы над крупными проектами.)

Хочу обратить ваше внимание, что использование данной строки в программе не обязательно, т.к. в C# можно всегда полностью определить имя с помощью пространства имен, к которому оно принадлежит. Например, строку

Console.WriteLine("Hello, World!");

можно переписать следующим образом

System.Console.WriteLine("Hello, World!");

Однако указывать пространство имен System всякий раз, когда используется член этого пространства, — довольно утомительное занятие, и поэтому большинство программистов на C# вводят директиву using System в начале своих программ. Следует, однако, иметь в виду, что любое имя можно всегда определить, явно указав его пространство имен, если в этом есть необходимость.

С помощью ключевого слова namespace объявляется пространство имен, с которым должен быть ассоциирован класс. Весь код в последующих фигурных скобках рассматривается как принадлежащий этому пространству имен. Оператор using специфицирует пространство имен, которое должен просматривать компилятор в поисках классов, упомянутых в коде, но не определенных в текущем пространстве имен. Это служит тем же целям, что оператор import в Java и using namespace в С++.

Перейдем к следующей строке программы:

class Program

В этой строке ключевое слово class служит для объявления вновь определяемого класса. Класс является основной единицей инкапсуляции в C#, a Program — это имя класса. Определение класса начинается с открывающей фигурной скобки "{" и оканчивается закрывающей фигурной скобкой "}". Элементы, заключенные в эти фигурные скобки, являются членами класса. Не вдаваясь пока что в подробности, достаточно сказать, что в C# большая часть действий, выполняемых в программе, происходит именно в классе.

Метод Main(), как уже говорилось, является точкой входа в программу. Формально класс, в котором определяется метод Main(), называется объектом приложения. Хотя в одном исполняемом приложении допускается иметь более одного такого объекта (это может быть удобно при проведении модульного тестирования), при этом обязательно необходимо информировать компилятор о том, какой из методов Main() должен использоваться в качестве входной точки. Для этого нужно либо указать опцию main в командной строке, либо выбрать соответствующий вариант в раскрывающемся списке на вкладке Application (Приложение) окна редактора свойств проекта в Visual Studio 2010.

Обратите внимание, что в сигнатуре метода Main() присутствует ключевое слово static. Oбласть действия статических (static) членов охватывает уровень всего класса (а не уровень отдельного объекта) и потому они могут вызываться без предварительного создания нового экземпляра класса.

Внутри метода Main() используется несколько встроенных методов предопределенного класса Console, в частности BackgroundColor - задает цвет фона, ForegroundColor - задает цвет контента (в нашем случае текста), WriteLine() - выводит на экран строку и ReadLine() - считывает данные из консоли.

Последним, немаловажным элементом являются комментарии, подробно расписанные в следующей статье.