#undef
Рассмотрим следующий пример кода.
#define SMALL
#if SMALL // . . .
#undef SMALL
// теперь идентификатор SMALL не определен.
После директивы #undef идентификатор SMALL уже оказывается неопределенным.
Директива #undef применяется главным образом для локализации идентификаторов только в тех фрагментах кода, в которых они действительно требуются.
Директива #еггог
Директива #error вынуждает компилятор прервать компиляцию. Она служит в основном для отладки. Ниже приведена общая форма директивы #еггог.
#еггог
Когда в коде встречается директива terror, выводится сообщение об ошибке. Например, когда компилятору встречается строка кода
#еггог Это тестовая ошибка!
компиляция прерывается и выводится сообщение "Это тестовая ошибка ! ".
Директива #warning
Директива #warning действует аналогично директиве terror, за исключением того, что она выводит предупреждение, а не ошибку. Следовательно, компиляция не прерывается. Ниже приведена общая форма директивы #warning.
#warning
Директива #line
Директива #line задает номер строки и имя файла, содержащего эту директиву. Номер строки и имя файла используются при выводе ошибок или предупреждений во время компиляции. Ниже приведена общая форма директивы #line.
#line номер
Имеются еще два варианта директивы #line. В первом из них она указывается с ключевым словом default, обозначающим возврат нумерации строк в исходное состояние, как в приведенном ниже примере.
#line default
А во втором варианте директива #line указывается с ключевым словом hidden. При пошаговой отладке программы строки кода, находящиеся между директивой
#line hidden
и следующей директивой #line без ключевого слова hidden, пропускаются отладчиком.
Директивы #region и #endregion
С помощью директив #region и #endregion определяется область, которая разворачивается или сворачивается при структурировании исходного кода в интегрированной среде разработки Visual Studio. Ниже приведена общая форма этих директив:
#region
// последовательность кода #endregion
где
Директива #pragma
С помощью директивы #pragma инструкции задаются компилятору в виде опций. Ниже приведена общая форма этой директивы:
#pragma
где
В текущей версии C# предусмотрены две опции для директивы #pragma. Первая из них, warning, служит для разрешения или запрета отдельных предупреждений со стороны компилятора. Она принимает две формы:
#pragma warning disable