#if Não depurar em c #?


127

Eu tenho a linha no código vb:

#if Not Debug

que devo converter e não o vejo em c #?

Existe algo equivalente a isso ou há alguma solução alternativa?

Respostas:


239

Você precisaria usar:

#if !DEBUG
    // Your code here
#endif

Ou, se seu símbolo é realmente Debug

#if !Debug
    // Your code here
#endif

A partir da documentação , você pode efetivamente tratar DEBUGcomo um booleano. Então você pode fazer testes complexos como:

#if !DEBUG || (DEBUG && SOMETHING)

15

Apenas para que você esteja familiarizado com o que está acontecendo aqui, #ifé uma expressão de pré-processamento e DEBUGum símbolo de compilação condicional. Aqui está um artigo do MSDN para uma explicação mais detalhada.

Por padrão, quando na configuração Debug , o Visual Studio verifica a opção constante Definir DEBUG nas propriedades de compilação do projeto. Isso vale para C # e VB.NET. Se você quiser ficar louco, pode definir novas configurações de compilação e definir seus próprios símbolos de compilação condicional. O exemplo típico quando você vê isso é:

#if DEBUG
    //Write to the console
#else
    //write to a file
#endif

10

Apenas no caso de ajudar alguém, aqui está a minha resposta.

Isso não funcionaria corretamente:

#if !DEBUG
     // My stuff here
#endif

Mas isso funcionou:

#if (DEBUG == false)
     // My stuff here
#endif

3
Poderia ter sido logo no dia este foi publicado, mas pelo menos para VS 2015 DEBUG funciona como esperado!
Ole Albers

5

Eu acho que algo como vai funcionar

 #if (DEBUG)
//Something
#else
//Something
#endif

5
Apenas observar os parênteses não é necessário para essas #ifdeclarações condicionais . Pode ser escrito#if DEBUG
atconway 15/03

0
     bool isDebugMode = false;
#if DEBUG
     isDebugMode = true;
#endif
    if (isDebugMode == false)
    {
       enter code here
    }
    else
    {
       enter code here
    }

5
Essa é uma resposta ruim, pois usa a lógica de tempo de execução para lidar com o que poderia ser feito em tempo de compilação.
Antiduh 18/03/16

O tempo de design do modelo T4 e similares precisarão desse tipo de coisa de tempos em tempos.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.