Skip to content

RU CSharp Directives

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Директивы, версия языка и параметры компиляции

Руководство C# · Примеры UO

Директивы начинаются с # в начале строки: #if/#elif/#else/#endif, #define, #undef, #region, #endregion, #warning, #error, #line, #pragma, #nullable. Они управляют компиляцией или диагностикой. #region организует редактор, но не создаёт область видимости.

Простой пример (Example.cs)

Сохраните этот пример отдельно как Example.cs. Запускайте его независимо от остальных примеров страницы.

Example.cs:

// PROJECT-EXAMPLE
#define REPORT
#if REPORT
System.Console.WriteLine("Enabled");
#else
System.Console.WriteLine("Disabled");
#endif

Результат:

Enabled
#nullable enable
string? name = null;
UO.Print(name ?? "unknown");
#if DEBUG
UO.Print("Debug configuration");
#else
UO.Print("Regular configuration");
#endif

Обычный проект задаёт TargetFramework, LangVersion, Nullable, AllowUnsafeBlocks и другие свойства в .csproj. Синтаксис определяется компилятором, а доступные API — также целевой платформой и зависимостями.

Из современных возможностей C# важны raw-строки, collection expressions, primary constructors, list patterns, required, расширенные ref-возможности, расширения и свойства с field. Для точных условий конкретной версии используйте официальную историю языка; preview-возможности включаются отдельным параметром проекта.

Официальная документация: Директивы, версия языка и параметры компиляции — Microsoft Learn.

Clone this wiki locally