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

Атрибут Conditional в C#

Атрибут ConditionalAttribute из System.Diagnostics привязывает метод к символу условной компиляции. Если символ не объявлен, вызовы метода исчезают из IL - как будто их обернули в #if.

Метод должен возвращать void; для выражений с результатом по-прежнему нужны директивы препроцессора.

Объявим DEBUG и вызовем трассировочный метод перед обычным выводом. Сначала появится "trace", затем "ok". Без DEBUG в сборке останется только вторая строка: компилятор удалит вызов TraceLine:

#define DEBUG using System.Diagnostics; TraceLine(); Console.WriteLine("ok"); [Conditional("DEBUG")] static void TraceLine() => Console.WriteLine("trace");

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

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