Здравствуйте, zelenprog, Вы писали:
Z>В том-то и дело, что в "моем" языке нету указателей на процедуру.
Z>Как выкрутиться в этой ситуации?
Тогда ваш единственный выход — switch.
То есть примерно так:
int BinaryOp(int a, int b, int functionNo) // весь полиморфизм - здесь
{
switch(functionNo)
{
case 0: return Add(a, b);
case 1: return Mul(a, b);
case 2: return Sub(a, b);
default: throw new Exception("Unknown function no: " + functionNo.ToString());
}
}
int Foo(int[] data, int initValue, int functionNo)
{
var acc = initValue;
for(var item in data)
acc = BinaryOp(acc, item);
return acc;
}