Массив методов - 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д