I know I can pass a method like this:
Class A:
public void foo(Action<Class, Class, Class> bar)
{
Class a;
Class b;
Class c;
bar(a, b, c);
}
Class B:
public main()
{
foo(bar);
}
protected void bar(Class a, Class b, Class c);
But I want it to be more conditional:
Class A:
public void foo(bar) {
Class a;
Class b;
Class c;
Class d;
if(condition A)
bar(a, b, c);
else
bar(a, b, c, d);
}
Class B:
public main()
{
foo(bar);
}
protected void bar(Class a, Class b, Class c);
protected void bar(Class a, Class b, Class c, Class d);
How do I do this?
There is no way of passing a method-group (a set of methods of the same name but with different signatures) except by-name as a string, and then using reflection. Any
Delegate/Expression/MethodInforepresentation must be to a single method.So: you cannot.
Suggestion: