Я пытаюсь создать приложение, которое будет что-то для каждого файла в каталоге.
Что что-то должно быть каким-то методом.Но поскольку я не знаю, какой именно метод, я пытаюсь сделать так, чтобы мой «итеративный» метод принимал аргумент любого метода или какую-либо ссылку на метод, поэтому он может вызывать его для каждого файла.
Дело в том, что существует множество вариантов того, что делать с каждым файлом, и пользователь выбирает тот, который ему нужен.Опции также должны быть открыты для расширения, поэтому через неделю я могу решить добавить новую, поэтому мне нужно:
Метод, который может вызывать любой метод безпредварительное знание его подписи.
Действия и функции не работают для меня, потому что им нужна конкретная подпись.Как и делегаты, насколько я знаю, и (я думаю) они не могут быть переданы в качестве параметра метода.
Пример того, чего я хочу достичь:
void Iterate(DirectoryInfo dir, method dostuff)
{
foreach(var file in dir.GetFiles())
{
dostuff(file);
//And this is the point where I feel stupid...
//Now I realise I need to pass the methods as Action parameters,
//because the foreach can't know what to pass for the called method
//arguments. I guess this is what Daisy Shipton was trying to tell me.
}
}