#define (Справочник по C#)

#define позволяет определить символ. При использовании символа в качестве выражения, которое передается директиве #if, выражение будет иметь значение true как показано в следующем примере:

#define DEBUG

Заметки

Примечание

Директиву #define нельзя использовать для объявления значений констант, как это делается в C и C++.Для определения констант в C# следует использовать статические элементы класса или структуры.При наличии нескольких констант имеет смысл создать для них отдельный класс "Constants".

Символы можно использовать для указания условий компиляции. Для проверки символов можно использовать директивы #if или #elif. Для условной компиляции также можно использовать атрибут conditional.

Можно определить символ, но нельзя назначить символу значение. Директива #define должна присутствовать в файле до использования каких-либо инструкций, не являющихся также директивами препроцессора.

Также можно определить символ с помощью параметра компилятора /define. Для отмены определения символа служит директива #undef.

Символ, определенный с помощью /define или #define, не конфликтует с одноименной переменной. Имя переменной не должно передаваться директиве предварительной обработки, а символ может вычисляться только директивой предварительной обработки.

Область символа, созданная с помощью директивы #define, — это файл, в котором символ был определен.

Как показано в следующем примере, необходимо размещать директивы #define вверху файла.

#define DEBUG
//#define TRACE
#undef TRACE

using System;

public class TestDefine
{
    static void Main()
    {
#if (DEBUG)
        Console.WriteLine("Debugging is enabled.");
#endif

#if (TRACE)
     Console.WriteLine("Tracing is enabled.");
#endif
    }
}
// Output:
// Debugging is enabled.

Пример отмены определения символа см. в разделе #undef (Справочник по C#).

См. также

Задачи

Практическое руководство. Условная компиляция с использованием атрибутов Trace и Debug

Ссылки

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

const (Справочник по C#)

#undef (Справочник по C#)

#if (Справочник по C#)

Основные понятия

Руководство по программированию на C#

Другие ресурсы

Справочник по C#