AnnTHony
@AnnTHony
Интроверт

Как передать функцию (метод) в качестве параметра в конструктор?

Где-то на стороне сервера есть функция:
class RemoteServer
    {
        public int Value(string key)
        {
            return 1;
        }
    }


И есть клиентское приложение, которое будет вызывать данную функцию. Она должна прописываться один раз в конструкторе класса.

class Client
    {
        public Client(тут нужно указать функцию Value) // Возможно еще какие-то параметры будут
        {
            // ...
        }

        public int UseFuncClient()
        {
            // А здесь нужно будет как-то использовать указанную функцию.
        }
    }


Предполагаю, что нужно использовать делегат Func<>, но могу придумать как правильно это сделать.
  • Вопрос задан
  • 5572 просмотра
Решения вопроса 1
petermzg
@petermzg
Самый лучший программист
private Func<string, int> fn;
public Client(Func<string, int> fn)
{
    this.fn = fn;
}

public int UseFuncClient()
{
    fn("text");
}

var rs = new RemoteServer();
var cl = new Client(rs.Value);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Ko1
public Client(Func<type1, type2 ... > method), как-то так
а, конкретно в вашем случае
public Client(Func<int, string> method)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы