Есть ли способ сохранить метод в переменной, а затем вызвать его позже? Что, если мои методы возвращают разные типы?

Edit: Спасибо за ответы. Сейчас я работаю над этим !! \

У меня есть 3 метода: S () возвращает строку, D () возвращает значение double, а B () возвращает значение bool.

У меня также есть переменная, которая определяет, какой метод я использую. Я хочу сделать это:

    // I tried Func method; but it says D() and B() don't return object.
    // Is there a way to use Delegate method; ? That gives me an eror saying method group is not type System.Delegate
    var method;

    var choice = "D";

    if(choice=="D")
    {
        method = D;
    }
    else if(choice=="B")
    {
        method = B;
    }
    else if(choice=="S")
    {
        method = S;
    }
    else return;

    DoSomething(method); // call another method using the method as a delegate.

    // or instead of calling another method, I want to do:
    for(int i = 0; i < 20; i++){
       SomeArray[i] = method();
    }

Возможно ли это?

Я прочитал это сообщение: Сохранение метода как переменной-члена класса в C # Но мне нужно хранить методы с разными типами возврата ...

10
задан Community 23 May 2017 в 11:53
поделиться