У меня есть несколько методов, некоторые с дополнительными параметрами и некоторые без каких-либо. Как я могу вызвать эти методы, только имея имя функции в виде строки?Вызов метода с необязательными параметрами из строки
В настоящее время у меня есть это:
public Method method = Method.QuickSort;
public enum Method
{
BubbleSort,
MergeSort,
QuickSort,
InsertionSort,
RadixSortLSD,
CocktailSort,
CombSort,
OddEvenSort
}
MethodInfo mi = this.GetType().GetMethod(method.ToString());
mi.Invoke(this, null);
Таким образом, это все работает отлично, до тех пор пока у меня есть функция с дополнительным параметром .. Путь я «фиксированный» его, как это:
try
{
mi.Invoke(this, null);
}
catch
{
try
{
mi.Invoke(this, new object[] { Type.Missing });
}
catch
{
try
{
mi.Invoke(this, new object[] { Type.Missing, Type.Missing });
}
catch
{
mi.Invoke(this, new object[] { Type.Missing, Type.Missing, Type.Missing });
}
}
}
Но это ужасное «решение», очевидно. ? Так что мой вопрос, как я могу создать функциональные возможности, которые мне нужно (вызов метода по имени строки с дополнительным PARAMATERS)
Я не» Посмотрите, как это сделать, по сравнению с предоставлением интерфейса и присваиваемых реализаций вашего алгоритма сортировки. – ckruczek