Вызвать функцию с параметром в виде строки - PullRequest
0 голосов
/ 05 ноября 2018

Мне нужно вызвать функцию с параметром в виде строки. Посмотрите на пример, приведенный ниже: Обратите внимание, что "method(parameter1,parameter2)" заключено в "".

string methodName = "method(3,4)"
string f = methodName ;

public string method(int one, int two){
    return "hi";
}

Выше приведен ожидаемый результат. Я буду вызывать функцию с именем строкового метода и его параметрами:

Что я пробовал до сих пор:

  1. Я пытался использовать Reflection, но метод не вызывался.

  2. Как я могу это исправить?

Есть ли другой способ сделать это?

Type type = typeof(MyClass);
var method = type.GetMethod("method");
MyClass  cc = new MyClass();
string re= (string) method.Invoke(cc, new object[] {1,3});

1 Ответ

0 голосов
/ 05 ноября 2018

Вот пример того, как вы можете вызвать метод, используя отражение.

Если вы хотите обрабатывать ввод метода как часть строки, вы должны проанализировать эту часть строки и передать значения как экземпляры в массиве объектов при вызове метода.

class Program
{
    static void Main(string[] args)
    {
        var m = typeof(Program).GetMethod("PrintValue");
        var i  = new Program();
        m.Invoke(i, BindingFlags.Default, null, new object[] {42}, CultureInfo.CurrentCulture);
    }

    public void PrintValue(int i)
    {
        Console.WriteLine(i);
    }
}
...