Как правило, дополнительные / условные символы компиляции будут предоставлены сценарием сборки.Очень редко можно увидеть #define
, за исключением очень кода отладки (если вы понимаете, о чем я).
Повторное использование переменной;Я часто использую такие условия для обработки кода, который должен выполняться в разных средах выполнения (mono, cf, silverlight и т. Д.).Переменная не может быть достаточной, потому что код нельзя скомпилировать для неверной платформы (отсутствующие типы / методы и т. Д.).
В представленном примере я, вероятно, просто использовал бы Debug.WriteLine
;так как он украшен [Conditional("DEBUG")]
, все вызовы к нему автоматически удаляются, если DEBUG
не определен при сборке.