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