- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 - 41
 - 42
 - 43
 - 44
 - 45
 - 46
 - 47
 - 48
 - 49
 - 50
 - 51
 - 52
 - 53
 - 54
 - 55
 - 56
 - 57
 - 58
 - 59
 - 60
 - 61
 - 62
 - 63
 - 64
 - 65
 - 66
 - 67
 - 68
 - 69
 
static public int IIF(bool condition, int a, int b)
        {
            int x = 0;
            if (condition)
            {
                x = a;
            }
            else
            {
                x = b;
            }
            return x;
        }
        static public bool IIF(bool condition, bool a, bool b)
        {
            bool x = false;
            if (condition)
            {
                x = a;
            }
            else
            {
                x = b;
            }
            return x;
        }
        static public Single IIF(bool condition, Single a, Single b)
        {
            float x = 0;
            if (condition)
            {
                x = a;
            }
            else
            {
                x = b;
            }
            return x;
        }
        static public Double IIF(bool condition, double a, double b)
        {
            double x = 0;
            if (condition)
            {
                x = a;
            }
            else
            {
                x = b;
            }
            return x;
        }
        static public decimal IIF(bool condition, decimal a, decimal b)
        {
            decimal x = 0;
            if (condition)
            {
                x = a;
            }
            else
            {
                x = b;
            }
            return x;
        }
                                
 Follow us!
А в C# можно задавать функции с ленивыми операторами?
Если уж так нужны эти функции, то из них можно записать в виде:
return condition ? a : b;
Другой вопрос - зачем вообще нужны эти функции???
Например
float GetVal(index: integer; a: array of lazy float) {
return a[index];
};
x := GetVal(2, {sin(x), cos(x), tg(x), ctg(x)});
вычислится только нужный аргумент
Но для оригинального говнокода достаточно ? или ??
макак и выходец с VB, 80% целевой аудитории до-диеза
а вот в паскале такое не... WAIT OH SHI-
это не так
Народ писал самопальные IIF, как вышеприведенный товарищ.
И утверждали что это то же самое. Поэтому и уверен что это дельфист.
IIF (x = nil, y.Foo(), x.Bar())
конечно, можно изобретать лучшую эмуляцию этой языковой конструкции, но это как-то только усложняет жизнь :)
iif - хуита
----------------------------------------------------
нативная конструкция бейсика - хуита