- 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;
}
А в 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 - хуита
----------------------------------------------------
нативная конструкция бейсика - хуита