# if (translation from VPE for Csharp Reference)
#if permite que você começar uma diretiva condicional, teste um símbolo ou símbolos para ver se eles avaliados como true. Se eles avaliados como true, o compilador avalia todo o código entre o #if o mais próximo # endif diretiva.Por exemplo,
#define DEBUG
// ...
#if DEBUG
Console.WriteLine("Debug version");
#endif
Você pode usar os operadores == (igualdade) != (desigualdade) && (e) e || (ou) para avaliar vários símbolos.Você também pode agrupar os símbolos e operadores com parênteses.
Comentários
#if, juntamente com o # else, # elif, # endif, # define, and #undef diretivas, permite que você inclui ou exclui o código com base em condição de um ou mais símbolos.Isso pode ser mais útil durante a compilação de código para uma compilação de depurar ou durante a compilação de uma configuração específica.
Uma diretiva condicional que começa com um #if diretiva explicitamente deve ser terminada com um #endif diretiva.
#define permite que você definir um símbolo, de modo que, usando o símbolo de sistema autônomo a expressão passada para o #if diretiva, a expressão será avaliada sistema autônomo true.
Você também pode definir um símbolo com o / defineopção do compilador .Você pode remover um símbolo com #undef.
Um símbolo que você define com /define ou com #define não está em conflito com uma variável de mesmo nome. Ou seja, um nome de variável não deve ser passado para uma diretiva de pré-processador e um símbolo só pode ser avaliado por uma diretiva de pré-processamento.
O escopo de um símbolo criado com #define é o arquivo no qual ela foi definida.
Exemplo
// preprocessor_if.cs
#define DEBUG#define VC_V7
using System;
public class MyClass
{
static void Main()
{
#if (DEBUG && !VC_V7)
Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && VC_V7)
Console.WriteLine("VC_V7 is defined");
#elif (DEBUG && VC_V7)
Console.WriteLine("DEBUG and VC_V7 are defined");
#else
Console.WriteLine("DEBUG and VC_V7 are not defined");
#endif
}
}
DEBUG and VC_V7 are defined