# IF (C#-Reference)
Pokud nalezne kompilátor jazyka C# #if směrnice, a nakonec podle #endif směrnice, ji bude kompilovat kód mezi směrnic pouze v případě, že zadaný symbol definován.Na rozdíl od C a C++ nelze přiřadit hodnotu symbolu; příkaz #if v jazyce C# je Boolean a pouze testuje, zda byl definován symbol nebo Ne.Příklad:
#define DEBUG
// ...
#if DEBUG
Console.WriteLine("Debug version");
#endif
Operátory lze použít == (rovnost) ! = (nerovnost) pouze pro testování true nebo false .TRUE znamená, že je definován symbol.Příkaz #if DEBUG má stejný význam jako #if (DEBUG == true).Operátory lze použít & & (a), | (or), and ! (ne) vyhodnotit, zda byly definovány více symbolů.Můžete také seskupit symboly a operátory pomocí závorek.
Poznámky
#if, spolu s #else, #elif, #endif, # definovat, a #undef směrnic, umožňuje zahrnout nebo vyloučit kód založený na existenci jednoho nebo více symbolů.To může být užitečné při kompilaci kódu pro sestavení ladění nebo při kompilaci pro konkrétní konfiguraci.
Podmíněné direktivy začátek s #if směrnice musí být explicitně ukončeno s #endif směrnice.
#defineUmožňuje definovat symbol, tak, že pomocí symbolu jako výraz předány #if směrnice, výraz se vyhodnotí na true.
Můžete také definovat symbol / define možnost kompilátoru.Nedefinování definičních souborů symbol s #undef.
Symbol, který definujete pomocí /define nebo #define není v rozporu s proměnnou se stejným názvem.To znamená že název proměnné nesmí být předáno direktivě preprocesoru a symbol lze vyhodnotit pouze direktivu preprocesoru.
Rozsah symbol vytvořen s #define je soubor, který byl definován.
Příklad
// preprocessor_if.cs
#define DEBUG
#define MYTEST
using System;
public class MyClass
{
static void Main()
{
#if (DEBUG && !MYTEST)
Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && MYTEST)
Console.WriteLine("MYTEST is defined");
#elif (DEBUG && MYTEST)
Console.WriteLine("DEBUG and MYTEST are defined");
#else
Console.WriteLine("DEBUG and MYTEST are not defined");
#endif
}
}