/define (параметры компилятора C#)
Параметр /define определяет name как символ во всех файлах исходного кода программы.
/define:name[;name2]
Аргументы
- name, name2
Имя из одного или нескольких символов, которые требуется определить.
Заметки
Параметр /define оказывает такое же влияние, что и использование директивы препроцессора #define, за исключением того, что параметр компилятора влияет на все файлы проекта. Этот символ остается определенным в исходном файле до тех пор, пока директива #undef в исходном файле не удалит определение. При использовании параметра /define директива #undef в одном файле не влияет на другие файлы исходного кода в проекте.
Созданные с помощью этого параметра символы можно использовать с директивами #if, #else, #elif и #endif для условной компиляции исходного кода.
/d является короткой формой /define.
Можно определить несколько символов при помощи параметра /define, отделяя имена символов точкой с запятой или запятой. Примеры.
/define:DEBUG;TUESDAY
Сам компилятор C# не определяет символы или макросы, используемые в исходном коде; все определения символов должны быть заданы пользователем.
Примечание
В C# директива #define не позволяет присвоить символу значение, в отличие от других языков, таких как C++.Например, #define не может использоваться для создания макроса или определения константы.Для определения константы необходимо использовать переменную enum.Для создания макросов в стиле C++ можно использовать альтернативные варианты, такие как универсальные шаблоны.Поскольку макросы заведомо являются источниками ошибок, в C # запрещено их использование, но предоставлены более безопасные альтернативы.
Установка параметра компилятора в среде разработки Visual Studio
Откройте страницу Свойства проекта.
На вкладке Построение введите символ, который должен быть определен в поле Символы условной компиляции. Например, при использовании показанного далее примера кода просто введите в текстовое поле xx.
Дополнительные сведения об установке этого параметра компилятора программным путем см. в разделе DefineConstants.
Пример
// preprocessor_define.cs
// compile with: /define:xx
// or uncomment the next line
// #define xx
using System;
public class Test
{
public static void Main()
{
#if (xx)
Console.WriteLine("xx defined");
#else
Console.WriteLine("xx not defined");
#endif
}
}