В c # мы можем создавать делегатов различными способами (например, Action <>, Func <>, делегат, лямбда-выражения и т. Д.). Но когда вы вызываете эти методы, вы должны предоставить значения параметров для вызываемого вами делегата:
delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5);
Есть ли способ в c # инкапсулировать метод делегировать значения параметра WITH? По сути, задержать вызов полностью параметризованного метода? То есть вам не нужно указывать значения параметров во время вызова?
Например, что-то вроде этого неверного кода:
delegate int del(int i);
del myDelegate(5) = x => x * x;
int j = myDelegate;
Я знаю, что вариант использования не сразу очевиден. В случае, который я сейчас рассматриваю, у меня есть недетерминированный метод, который я хотел бы, чтобы вызывающая сторона могла вызывать без необходимости содержать или знать параметры, необходимые для метода. Одним из способов достижения этого было бы создание класса, который инкапсулирует как значения параметров, так и делегат метода, и на который ссылается и вызывает вызывающая сторона. Но мне просто любопытно, есть ли альтернативный, более лаконичный способ.