Каково использование #if в C#?

Я должен знать использование #if в C#... Спасибо..

11
задан Botz3000 3 May 2012 в 13:34
поделиться

6 ответов

#if - команда препроцессора .

Наиболее распространенное использование (что некоторые могут назвать злоупотреблением) - это иметь код, который компилируется только в режиме отладки:

#if DEBUG
    Console.WriteLine("Here");
#endif

Одно очень хорошее применение (как указывает StingyJack ) - позволить легко отладка службы Windows:

static void Main()
{
#if (!DEBUG)
    System.ServiceProcess.ServiceBase[] ServicesToRun;
    ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() };
    System.ServiceProcess.ServiceBase.Run(ServicesToRun);
#else
    // Debug code: this allows the process to run as a non-service.

    // It will kick off the service start point, but never kill it.

    // Shut down the debugger to exit

    Service1 service = new Service1();
    service.<Your Service's Primary Method Here>();
    // Put a breakpoint on the following line to always catch
    // your service when it has finished its work
    System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
#endif 
}

Источник

Это означает, что запущенный режим выпуска запустит службу, как ожидалось, а работа в режиме отладки позволит вам фактически отладить код.

25
ответ дан 3 December 2019 в 02:40
поделиться

«Когда компилятор C # встречает директиву #if, за которым в конечном итоге следует директива #endif, код между директивами будет компилироваться только в том случае, если указанный символ определен »

Вот ссылка MSDN .

4
ответ дан 3 December 2019 в 02:40
поделиться

#if потерял так много по сравнению со своими предками - c или C ++. в настоящее время я использую #if только для двух сценариев

1) используйте его, чтобы включить код для отладки или не выполнять отладку

#if DEBUG
    // code inside this block will run in debug mode.
#endif

2) использовать его для быстрого отключения кода

#if false
     // all the code inside here are turned off..
#endi
0
ответ дан 3 December 2019 в 02:40
поделиться

#if (Справочник по C #) - директива компилятора. См. Статью MSDN для получения дополнительной информации.

2
ответ дан 3 December 2019 в 02:40
поделиться

#if - это директива компилятора, например, вы можете #define test

и позже в коде вы можете протестировать #ifdef test скомпилировать блок кода с помощью #ifdef

0
ответ дан 3 December 2019 в 02:40
поделиться

Он используется для директив препроцессора, см. Здесь http://msdn.microsoft.com/en-us/library/4y6tbswk (v = VS.71) .aspx

0
ответ дан 3 December 2019 в 02:40
поделиться