Я думаю, что это значительно упростило бы перегрузку функций, если бы я мог просто написать кейс, который принимает большинство параметров, а затем просто заполнить каждый кейс, имеющий меньше параметров, фиктивными параметрами. Например ..
// Add two integers
Func<int, int, int> addInts = (x, y) => { return x + y; };
// Add one to an integer
Func<int, int> addOne = (x) => { return x++; };
// In this case Func takes 2 args and has 1 return
public int IntCalc(Func<int,int,int> operation, int param1, int param2)
{
return operation(param1, param2);
}
// In this case Func takes 1 arg and has 1 return
public int IntCalc(Func<int, int> operation, int param1, int param2)
{
// This cast would allow me to do the overload
Func<int, int, int> castedOperation = (Func<int, int, int>)addOne;
return IntCalc(castedOperation, param1, 0);
}
Так есть ли способ сделать это? Это ужасная практика?