Массив методов - C#
Формулировка задачи:
Есть класс, в нем есть не НЕСТАТИЧЕСКИЕ методы, которые принимают 3 переменные типа integer и ничего не возвращают. Нужно сделать массив ссылок на эти методы, чтобы к ним можно было обращаться по индексу methods[i]. Вариант с массивом делегатов не совсем подходит, т.к. тогда методы должны быть статическими, а в них идет работа с переменными вызывающего объекта. В принципе их можно сделать статическими, но тогда в них еще придется передавать ссылку на объект, для которого онии вызываются (что немного не кошерно). Подскажите плз, может быть есть способ создать этот массив без static?
Решение задачи: «Массив методов»
textual
Листинг программы
void Main()
{
var methods = new Action<int, int, int>[5];
var foo = new Foo();
for (int i = 0; i < methods.Length; i++)
methods[i] = foo.Do;
for (int i = 0; i < methods.Length; i++)
methods[i](5, 5, 5);
Console.WriteLine(foo.Sum);
}
class Foo
{
public int Sum;
public void Do(int a, int b, int c)
{
Sum += a + b + c;
}
}