dotSITE
Work in Murano Software. Учебник по C# Шаблоны проектирования
новости материалы решения форумы группы настройки/о проекте

Директивы препроцессора

В C# компилятор перед, собственно, компиляцией, код обрабатывается препроцессором - программой, которая ищет в коде специальные директивы и соответственно изменяет код. В основном такие директивы выделяют блоки кода и позволяют их условно исключать из компиляции. Для внешней параметризации препроцессора используются определения. Для каждого определения (которое однозначно определяется своим именем) можно сказать, что оно либо определено либо нет. В зависимости от этого ведет себя препроцессор. Определения можно определять как извне (с момощью командной строки - смотрите описание компилятора) либо в коде с помощью директивы #define.

Директива #define имеет следующий вид:

        #define имя_определения
    

После этой директивы определение с данным именем считается определенным. Определение можно снять с помощью директивы #undef:

        #undef имя_определения
    

Как мы уже говорили, с помощью определений можно контролировать исключение некоторого кода из компиляции. Делается это с помощью блока #if..#else|#elif..#endif. Общий вид такого блока следующий:

        #if выражение1
        ...
        #elif выражение2
        ...
        #elif выражениеk
        ...
        #else
        ...
        #endif
    

Блоков #elif и #else может и не быть. Выражение - это логическок выражение, в котором термами являются имена определений, а их истинностным значением - их определенность. Таким образом, если выражение верно, то выполняется соответствующий блок.

Еще одной группой директив являются директивы, контролирующие генерацию ошибок. Это директивы #error, #warning и #line. Их синтаксис таков:

        #error текст
        #warning текст
        #line номер_строки ["имя_файла"] | default
    

Если компилятор встречает директиву #error или #warning, то он генерирует ошибку или предупреждение с соответствующим текстом. Директива #line позволяет переопределить имя файла или номер строки, которые будут выводиться при ошибках. default восстанавливает оригинальную нумерацию.

Последнее, что мы разберем это регионы. С помощью директив #region..#endregion можно выделить регион в исходном тексте, Они удобны, так как редактор Visual Studio позволяет сворачивать их. Ситаксис таков:

        #region имя_региона
        #endregion
    

<< Предыдущая Следующая >>

Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2012 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development