Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpDcCm 240 of 509 menu
◀ ▶

Условный метод в C#

Условный метод помечают ConditionalAttribute: он должен возвращать void, а вызовы исчезают из IL, если символ (например DEBUG) не определён при компиляции.

Компилятор убирает вызовы ещё при сборке, отдельной проверки в программе нет. Тело метода в сборке остаётся, просто без символа его не вызывают.

Объявим отладочный шаг и вызовем его из обычного метода. Символ DEBUG объявлен, поэтому в консоли будут "step" и "done":

#define DEBUG using System.Diagnostics; Run(); [Conditional("DEBUG")] static void LogStep() => Console.WriteLine("step"); static void Run() { LogStep(); Console.WriteLine("done"); }

Сделайте отладочный вывод "build", который исчезает без символа DEBUG, и выведите "ready".

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить