Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   [C# | FAQ] Условная компиляция (https://forum.antichat.xyz/showthread.php?t=171518)

dober.man 17.01.2010 17:09

[C# | FAQ] Условная компиляция
 
Появилась недавно у меня задача компиляции программы под разные устройства. Ряд устройств в моём случае обладают специфическими возможностями и для них задействуются специальные библиотеки, а для некоторых обычных устройств — эти библиотеки надо исключать. Можно конечно комментировать каждый раз — но включений довольно много и такой подход весьма проблематичен. Но есть очень хороший выход из этой ситуации, называется он условная компиляция.
Для условной компиляции используются директивы: #define, #if, #else, #endif.
Как обычно долго рассуждать как это использовать не буду, просто приведу пример:
Код:

#define PARAM1
#if PARAM1
Console.Write("Defined PARAM1");
#else
Console.Write("Not defined PARAM1");
#endif

При этом будет скомпилирован код:
Код:

Console.Write("Defined PARAM1");
Код:

//#define PARAM1
#if PARAM1
Console.Write("Defined PARAM1");
#else
Console.Write("Not defined PARAM1");
#endif

При этом будет скомпилирован код:
Код:

Console.Write("Not defined PARAM1");
Вот и всё.

desTiny 17.01.2010 19:11

безумно познавательно =\

nerezus 17.01.2010 19:44

[C# | FAQ] Условное выполнение блока
 
Появилась у меня задача выполнить условный блок кода.

Для условного выполнения блока кода используются операторы: if else.
Как обычно долго рассуждать как это использовать не буду, просто приведу пример:

Код:

if (param) {
    Console.Write("Param is true");
} else {
    Console.Write("Param is false");
}


bool param = true;
При этом будет выполнен код:
Код:

Console.Write("Param is true");
bool param = false;
При этом будет выполнен код:
Код:

Console.Write("Param is false");
Вот и всё.


Update: Если кто не понял - то это "ирония".

dober.man 17.01.2010 20:17

Цитата:

Сообщение от nerezus
Update: Если кто не понял - то это "ирония".

Ой, да ладно?! Не ожидал, что такое напишет тот, кому нужно на 6 страниц расписать тему, чтобы он воткнул как выполнить JS-скрипт в контроле WebBrowser!

nerezus 17.01.2010 20:22

Цитата:

Ой, да ладно?! Не ожидал, что такое напишет тот, кому нужно на 6 страниц расписать тему, чтобы он воткнул как запустить JS-скрипт в контроле WebBrowser!
Кто-то путает цифры и WebBrowser с mshtml, COM и маршаллингом ;)

dober.man 17.01.2010 20:40

Цитата:

Сообщение от nerezus
Кто-то путает цифры и WebBrowser с mshtml, COM и маршаллингом ;)

Не не не! 6 страниц по 10 сообщений! И об mshtml вы узнали только где-то на 4ой! ;)
Цитата:

Сообщение от Tigger
ТС, гений!!!

Цитата:

Сообщение от cheater_man
Однозначно!!!

Торчки блин! С помощью условной компиляции, можно совершенно не беспокоиться, к примеру, о версии фреймворка на машине клиента! Я то понимаю, что привел пример из разряда простейших, только вот что-то посерьезней ваш мозг не осилит!

nerezus 17.01.2010 21:24

Цитата:

Я то понимаю, что привел пример из разряда простейших, только вот что-то посерьезней ваш мозг не осилит!
За оскорбление участников форума бан. Для начала на 5 дней.


Время: 03:46