Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


1.4.1. Консольный проект

Вид окна выбора типа создаваемого проекта как консольного приложения показан на рис. 5.

Рисунок 5. Окно создания нового проекта

Если принять эти установки, то компилятор создаст решение, имя которого совпадает с именем проекта. На рис. 6 показано, как выглядит это решение в среде разработки.

Интегрированная среда разработки IDE (Integrated Development Envirionment) Visual Studio является многооконной, настраиваемой, обладает большим набором возможностей. Внешний вид ее достаточно традиционен. Следует обратить внимание лишь на три окна, из тех, что показаны на рис. 6. В окне Solution Explorer представлена структура построенного решения. В окне Properties можно увидеть свойства выбранного элемента решения. В окне документов отображается выбранный документ, в данном случае, программный код класса проекта - Examplel.Program. Отметим, в этом окне можно отображать и другие документы, список которых показан в верхней части окна.

Построенное решение содержит, естественно, единственный заданный нами проект - Examplel. Наш проект, как показано на рис. 6, включает в себя папку со ссылками на системные пространства имен из библиотеки FCL, файл со значком приложения и два файла с уточнением cs. Файл Assemblylnfo содержит информацию, используемую в сборке, а файл со стандартным именем Program является построенным по умолчанию классом, который задает точку входа - процедуру Main, содержащую для данного типа проекта только комментарий.

Рисунок 6. Среда разработки и консольное приложение, построенное по умолчанию

Отметим, что класс проекта погружен в пространство имен, имеющее по умолчанию то же имя, что и решение, и проект. Итак, при создании нового проекта автоматически создается достаточно сложная вложенная структура - решение, содержащее проект, содержащий в свою очередь пространство имен, которое включает в себя класс, содержащий точку входа. Для простых решений такая структурированность представляется избыточной, но для сложных - она осмысленна и полезна.

Помимо понимания структуры решения, стоит также разобраться в трех важных элементах, включенных в начальный проект - предложение using, тэги документации в комментариях и атрибуты.

Пространству имен может предшествовать одно или несколько предложений using, где после ключевого слова следует название пространства имен из библиотеки NFCL или из проектов, связанных с текущим проектом. В данном случае задается пространство имен System - основное пространство имен библиотеки FCL. Предложение using NameA облегчает запись при использовании классов, входящих в пространство NameA, поскольку в этом случае не требуется каждый раз задавать полное имя класса с указанием имени пространства, содержащего этот класс. Чуть позже мы увидим это на примере работы с классом Console пространства System. Отметим, что полное имя может потребоваться, если в нескольких используемых пространствах имен имеются классы с одинаковыми именами.

Все языки допускают комментарии. В C#, как и в С++, допускаются однострочные и многострочные комментарии. Первые начинаются с двух символов косой черты. Весь текст до конца строки, следующий за этой парой символов, (например, «//любой текст») воспринимается как комментарий, не влияющий на выполнение программного кода. Началом многострочного комментария является пара символов /*, а концом - */. Отметим, что тело процедуры Main содержит три однострочных комментария.

Здесь же в проекте, построенном по умолчанию, мы встречаемся с еще одной весьма важной новинкой C# - XML-тэгами, формально являющимися частью комментария. Отметим, что описанию класса Program и описанию метода Main предшествует заданный в строчном комментарии XML-тэг <summary>. Этот тэг распознается специальным инструментарием, строящим XML-отчет проекта. Идея самодокументируемых программных проектов, у которых документация является неотъемлемой частью, является важной составляющей стиля компонентного, надежного программирования на C#. Кроме тэга <summary> возможны и другие тэги, включаемые в отчеты. Некоторые тэги добавляются почти автоматически. Если в нужном месте (перед объявлением класса, метода) набрать подряд три символа косой черты, то автоматически вставится тэг документирования, так что останется только дополнить его соответствующей информацией.

Таков консольный проект, построенный по умолчанию. Функциональности у него немного. Его можно скомпилировать, выбрав соответствующий пункт из меню build. Если компиляция прошла без ошибок, то в результате будет произведена сборка и появится PE-файл в соответствующей папке Debug нашего проекта. Приложение можно запустить нажатием соответствующих клавиш (например, CTRL+F5) или выбором соответствующего пункта из меню Debug. Приложение будет выполнено под управлением CLR. В результате выполнения появится консольное окно с предложением нажать любую клавишу для закрытия окна.

Слегка изменим проект, построенный по умолчанию, добавим в него свой код и превратим его в классический проект приветствия. Нам понадобятся средства для работы с консолью для чтения с консоли (клавиатуры) и вывода на консоль (дисплей) строки текста. Библиотека NFCL предоставляет для этих целей класс Console, среди многочисленных методов которого есть методы ReadLine и WriteLine с очевидной семантикой. Вот код проекта, полученный в результате корректировок:

using System;
namespace ConsoleHello {
/// <summary>
/// Первый консольный проект - Приветствие
/// </summary>
internal class Class1 {
/// <summary>
/// Точка входа. Запрашивает имя и выдает приветствие
/// </summary>
private static void Main() {
Console.WriteLine("Введите Ваше имя");
string name;
name = Console.ReadLine();
if (name == "") Console.WriteLine("Здравствуй, мир!");
else Console.WriteLine("Здравствуй, " + name + "!");
}
}
}

В завершение первого проекта построим его XML-отчет. Для этого в свойствах проекта необходимо указать имя файла, в котором будет храниться отчет. Установка этого свойства проекта, так же как и других свойств, делается в окне Property Pages, открыть которое можно по-разному. Это делается следующим образом: в окне Solution Explorer выделяется строка с именем проекта, а затем в окне Properties нажимается имеющаяся там кнопка Property Pages. Затем в открывшемся окне свойств, показанном на рис. 7, устанавливается нужное свойство. В данном случае задаётся имя файла отчета hello.xml.

После перестройки проекта можно открыть этот файл с документацией. Если соблюдать дисциплину, то в нем будет задана спецификация проекта, с описанием всех классов, их свойств и методов. Вот как выглядит этот отчет в данном примере:

<?xml version="1.0"?>
<doc>
          <assembly>
          <name>Example1</name>
          </assembly>
           <members> <member name="T:Example1.Program">
                         <summary>
                        Первый консольный проект - Приветствие
                        </summary>
          </member>
          <member name="M:Example1.Program.Main(System.String[])">
                        <summary>
                                   Точка входа - Запрашивает имя и создаёт приветствие
                        </summary>
           </member>
</members>
</doc>

Рисунок 7. Окно Property Pages проекта и задание имени XML-отчета

Как видите, отчет описывает наш проект, точнее, сборку. Пользователь, пожелавший воспользоваться этой сборкой, из отчета поймет, что она содержит один класс, назначение которого указано в теге <summary>. Класс содержит лишь один элемент - точку входа Main с заданной спецификацией в теге <summary>.

 



<< ПредыдущаяОглавлениеСледующая >>